1、问题描述:登录系统后,进入A模块,点击【新增】按钮,执行新增操作的用例,我希望每次都是重新从新增按钮页面开始操作,而不需从新打开浏览器,进行登录,然后进入A模块等操作
初步解决:虽然说,防止 频繁打开浏览器的方法是使用@pytest.fixture(scope="session")当然scope也可能是class,但是实战过程中,发现依旧是重新打开浏览器等操作
实例:
@pytest.fixture(scope="session") def browser(): option=webdriver.ChromeOptions() option.add_argument("--disable-infobars") driver=webdriver.Chrome(options=option) driver.implicitly_wait(10) driver.maximize_window() yield driver driver.quit() @pytest.fixture(scope="session") def login(browser):#希望整个login操作只执行一次 print("开始运行") index=Login_page(browser).get_url().login("xxx","xxxx").skip_click().get_report().get_sq_manager() return index
思考后:在获取失望结果后,无论怎样都执行刷新浏览器操作,即可解决
def fail_tip(self):
try:
return BasePage(self.browser).find_element_only(self.fail_locator).text
except Exception as e:
print("失败")
finally:
self.browser.refresh()