Daniel Paczuski Bak
Daniel Paczuski Bak

Reputation: 4080

pytest-selenium installed but not available as plugin for pytest. What have I done wrong?

I've installed pytest-selenium, but I cannot use it with pytest.

  def test_sanity(selenium):
E       fixture 'selenium' not found
>       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, check, cov, dash_br, dash_duo, dash_process_server, dash_thread_server, dashr, dashr_server, doctest_namespace, install_cbm_dash, install_dir, metadata, mock, mocker, monkeypatch, most_recent_installer_exe, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, run_installer, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, uninstall_after_run
>       use 'pytest --fixtures [testpath]' for help on them.

λ pytest --fixtures
======================================================= test session starts ======================================================= platform win32 -- Python 3.6.8, pytest-4.6.3, py-1.8.0, pluggy-0.12.0
rootdir: C:\Users\dbak\Downloads\cmder
plugins: allure-pytest-2.7.0, dash-1.7.0, flaky-3.6.0, check-0.3.5, cov-2.10.0, html-1.21.1, metadata-1.8.0, mock-1.10.4, profiling-1.7.0

What might be the root cause of this? How can I fix it?

Upvotes: 0

Views: 140

Answers (1)

Jorrick Sleijster
Jorrick Sleijster

Reputation: 1156

This means that there is no fixture called selenium.

You probably need to initialise selenium. You can do this inside every function you want to use it, but that is quite annoying. Therefore the better alternative is adding a function in conftest.py. That way you can keep using selenium as an arg for your test functions.

import pytest

@pytest.fixture()
def selenium():
    #do some initialisation for selenium here.
    return your_selenium_instance

Upvotes: 0

Related Questions