我有一個問題,我在一個文件中有2個測試,並且只想用一次登錄就運行它們。如何把「登錄」方法放在pytest夾具中
from selenium.webdriver.common.by import By
from methods.is_present import is_element_present, is_element_present_n
from methods.users import add_new_user, delete_added_user
from methods.login import login
from methods.users import modify_user
from methods.users import modified_user
def test_new_user(driver, name='Adelia Foxy', username='zared114'):
login(driver, username="Admin", password="Password")
# add new user
add_new_user(driver,name, username)
#check if the new user added
assert is_element_present_n(driver, By.LINK_TEXT, "%s" % username)
# delete added user
delete_added_user(driver, name, username)
#check if user deleted
assert not is_element_present(driver, By.LINK_TEXT, "%s" % username)
def test_modify_user(driver, name='Adelia Foxy', username='New Username11'):
login(driver, username="Admin", password="Password")
#modifying user information
modify_user(driver, name, username)
#check is user modified
modified_user(driver, name, username)
我有登錄功能單獨的文件:
def login(driver, username, password):
driver.get("http://hrm.seleniumminutes.com/")
driver.find_element_by_css_selector("[name=txtUsername]").send_keys(username)
driver.find_element_by_css_selector("[name=txtPassword]").send_keys(password)
driver.find_element_by_css_selector("[name=Submit]").click()
driver.find_element_by_css_selector("[id=menu_admin_viewAdminModule]").click()
而且我也有單獨的文件 「conftest.py」 與pytest夾具:
import pytest
from selenium import webdriver
@pytest.fixture(scope='session')
def driver(request):
wd = webdriver.Chrome()
wd.implicitly_wait(2)
request.addfinalizer(wd.quit)
return wd
我試圖把我的夾具裏面的「登錄」方法
import pytest
from selenium import webdriver
from methods.login import login
@pytest.fixture(scope='session')
def driver(request):
wd = webdriver.Chrome()
wd.implicitly_wait(2)
login(driver, username="Admin", password="Password")
request.addfinalizer(wd.quit)
return wd
喜歡的東西上面,但我越來越AttributeError: 'function' object has no attribute 'get'
誰知道如何解決這個問題,也許有人知道更好的方式來運行只有一個登錄一些測試,感謝
https://github.com/harmatii/hrm
下面我的錯誤消息 request = <SubRequest 'driver' for <Function 'test_new_user'>> @pytest.fixture(scope='session') def driver(request): wd = webdriver.Chrome() login(driver, username="Admin", password="Password")
請在發佈錯誤消息時記得發佈堆棧跟蹤。 – Shadow