2017-05-30 6 views
0

pytestとseleniumを使用して、PythonでWebアプリケーションのテストコードを記述しようとしています。私はこのようにブラウザを渡すと働いた例を発見したpytest関数をブラウザに渡してテストのアクションを実行するには

from selenium import webdriver 
import pytest 
import time 

def test_OpenBE(browser): 
    browser.get('urlremoved.com') 

def test_navigateToSubmit(browser): 
     browser.get('urlremoved.com') 
     time.sleep(10) 
     browser.find_element_by_id('button').click() 

def test_Submission(browser): 
     browser.get('urlremoved.com') 
     browser.find_element_by_id('Name').send_keys("Name here") 
     browser.find_element_by_id("ID").send_keys("123456") 
     browser.find_element_by_id("email").send_keys("[email protected]") 

: 私のコードは次のようになります。私はpytestを使用してそれを実行しようとしたときしかし、私はエラーを受け取っ:

フィクスチャ「ブラウザ」は

available fixtures: cache, capfd, capsys, doctest_namespace, monkeypatch, pytestconfig, record_xml_property, recwarn, tmpdir, tmpdir_factory 
    use 'pytest --fixtures [testpath]' for help on them. 

を見つけていない、誰もが意図したとおりのテストが実行できるように、これを実装する方法を知っていますか?

編集:私はchromedriverをダウンロードして設定された変数

これは、今私はエラーになっていますUBT進捗状況を作るために何か行っているようだ
driver= webdriver.Chrome('chromedriver.exe') 

とValueError:プラグインは既に登録:pytest_webdriverを=) >

答えて

2

pytestがbrowser什器を探しています。おそらく、あなたはこの備品を宣言していないでしょう。あなたはここで備品について読むことができます - >https://docs.pytest.org/en/latest/fixture.html

とあなたが同じファイルでこのような何かを実装しようとすることができ、http://pytest-selenium.readthedocs.io/en/latest/index.html

しかしpytest - セレンプラグインを使用することができます...

@pytest.fixture 
def browser(): 
    "pytest fixture for browser" 
    return pytest.config.getoption("-B") 
+0

ブラウザのpytest fixtureについて知っていますか?私はそのリストまたはGoogleを介して1つを見つけることができていない –

+0

あなたはブラウザのためのあなた自身の什器を作ることができますか?多分これは他の人にとっても役立つだろうか? –

+0

私はテストコード開発とwebdriver/seleniumにはとても慣れていません。どのようにしていたのか分かっているのであれば、私は自分自身のフィクスチャを書くつもりです。私は解決策を見つけることができない場合、私はそれを調べることがあります! –

2

あなたはそれを呼び出す前に、ブラウザを初期化することができ、ために例。

browser = webdriver.Chrome() 

それともconftest.pyというファイルに理想的な機能を定義することにより、固定具を自分で作ります。あなたはpytestのウェブサイトでもっと読むことができます。ここに例があります:

@pytest.yield_fixture(scope='session') 
def browser(): 
    driver = webdriver.Chrome() 
    yield driver 
    driver.quit() 
関連する問題