測試模塊中的當(dāng)前部分代碼:def test_01(): driver.get('https://www.google.com')測試代碼:import pytestfrom selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWait@pytest.fixture(autouse=True)def browser(): driver = webdriver.Chrome(executable_path=r"C:\webdrivers\1\chromedriver.exe") driver.implicitly_wait(5) wait = WebDriverWait(driver, 10) driver.maximize_window() yield driver.quit()結(jié)果:“E NameError:名稱“驅(qū)動程序”未定義”目標(biāo)結(jié)果:初始化沒有類的 webdriver,將 webdriver 設(shè)置為每個測試函數(shù)的驅(qū)動程序,使用它運(yùn)行函數(shù)并使用 conftest 中的裝置后置條件退出。我有很多測試文件,這就是為什么我應(yīng)該做一次。我也嘗試過從固定裝置返回變量,但據(jù)我了解,測試函數(shù)仍然需要有固定裝置的變量,對我來說它看起來是錯誤的。例如:fixture - 返回x,testfunction(fixture): x =fixture. 它仍然無法與 webdriver\driver 一起使用(或者更確切地說我沒有弄清楚)。
1 回答

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊
您的測試函數(shù)需要將夾具作為參數(shù),這是問題的第一部分。
例如:
def test_01(driver):
driver.get('https://www.google.com')
但是您還沒有一個driver固定裝置,只有一個名為 的固定browser裝置,因此您需要更改固定裝置的名稱:
@pytest.fixture(autouse=True)
def driver(request):
...
最后,夾具需要返回驅(qū)動程序,以便您可以使用它。
@pytest.fixture(autouse=True)
def driver(request):
...
yield driver
...
添加回答
舉報(bào)
0/150
提交
取消