我正在尝试运行测试,但我遇到了这个错误,这是我的代码,有人可以告诉我错误在哪里吗?
会议测试
import pytest
from selenium import webdriver
driver:webdriver.Remote
@pytest.fixture
def setup_teardown():
#setup
global driver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.maximize_window()
driver.get("https://www.saucedemo.com/v1/")
#run test
yield
#teardown
driver.quit()
测试登录
import pytest
from selenium.webdriver.common.by import By
import conftest
@pytest.mark.usefixture("setup_teardown")
class TestCT01:
def test_ct01_login_valido(self):
driver = conftest.driver
driver.find_element(By.ID, "user-name").send_keys("standard_user")
driver.find_element(By.ID, "password").send_keys("secret_sauce")
driver.find_element(By.ID, "login-button").click()
assert driver.find_element(By.CLASS_NAME, "product_label").is_displayed()
错误 在此输入图片描述
我正在尝试运行测试,但我遇到了这个错误
您的标记末尾缺少“s”,这就是您的测试代码未触发夹具来启动驱动程序的原因。
将标记更改为:
@pytest.mark.usefixtures("setup_teardown")
class TestCT01:
但是,这是我的建议,更适合您的情况:
1-您不需要将conftest.py导入到您的测试代码中。
2-您不需要驱动程序的全局变量
conftest.py
import pytest
from selenium import webdriver
@pytest.fixture
def get_driver():
#setup
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.maximize_window()
driver.get("https://www.saucedemo.com/v1/")
#run test
yield driver
#teardown
driver.quit()
测试登录.py
import pytest
from selenium.webdriver.common.by import By
class TestCT01:
def test_ct01_login_valido(self, get_driver):
get_driver.find_element(By.ID, "user-name").send_keys("standard_user")
get_driver.find_element(By.ID, "password").send_keys("secret_sauce")
get_driver.find_element(By.ID, "login-button").click()
assert get_driver.find_element(By.CLASS_NAME, "product_label").is_displayed()