亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pytest,使用拆解退出為每個測試文件初始化 webdriver

pytest,使用拆解退出為每個測試文件初始化 webdriver

嗶嗶one 2023-07-11 16:58:36
測試模塊中的當前部分代碼:def test_01():    driver.get('https://www.google.com')測試代碼:import pytestfrom selenium import webdriverfrom selenium.webdriver.support.ui import [email protected](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()結果:“E NameError:名稱“驅動程序”未定義”目標結果:初始化沒有類的 webdriver,將 webdriver 設置為每個測試函數的驅動程序,使用它運行函數并使用 conftest 中的裝置后置條件退出。我有很多測試文件,這就是為什么我應該做一次。我也嘗試過從固定裝置返回變量,但據我了解,測試函數仍然需要有固定裝置的變量,對我來說它看起來是錯誤的。例如:fixture - 返回x,testfunction(fixture): x =fixture. 它仍然無法與 webdriver\driver 一起使用(或者更確切地說我沒有弄清楚)。
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

您的測試函數需要將夾具作為參數,這是問題的第一部分。


例如:


def test_01(driver):

    driver.get('https://www.google.com')

但是您還沒有一個driver固定裝置,只有一個名為 的固定browser裝置,因此您需要更改固定裝置的名稱:


@pytest.fixture(autouse=True)

def driver(request):

   ...

最后,夾具需要返回驅動程序,以便您可以使用它。


@pytest.fixture(autouse=True)

def driver(request):

    ...

    yield driver

    ...


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號