第四版使用fixture
- test_后台_双创_基础设置_赛区管理_添加赛区_case_v4_1.py
- 使用fixture来做前置和后置处理。
- 使用yield来分隔前置后后置处理步骤。
定义prepare_and_exit方法
- 定义prepare_and_exit方法:实现前置/后置操作
@pytest.fixture(scope='function', autouse=True)自动使用fixture
def prepare_and_exit(self):
driver = webdriver.Firefox()
driver.implicitly_wait(15)
driver.get("http://192.168.58.134:8080/integration/manage")
sleep(2)
# yield前实现前置操作
driver.find_element(By.ID, "userName").clear()
driver.find_element(By.ID, "userName").send_keys("root")
driver.find_element(By.ID, "password").clear()
driver.find_element(By.ID, "password").send_keys("12345678")
driver.find_element(By.XPATH, "//span[text()='登录']").click()
sleep(1)
driver.find_element(By.ID, "213").click() # 基础设置
WebDriverWait(driver, 20).until(
expected_conditions.presence_of_element_located((By.XPATH, "//div[@id='213']/img[@class='open']")))
driver.find_element(By.ID, "214").click() # 赛区管理
WebDriverWait(driver, 20).until(
expected_conditions.frame_to_be_available_and_switch_to_it((By.XPATH, "//iframe[@data-itemid='213']")))
# yield后实现后置操作
WebDriverWait(driver, 20).until_not(expected_conditions.presence_of_element_located((By.ID, "Loading")))
self.driver=driver
yield
self.driver.switch_to.default_content()
self.driver.find_element(By.CLASS_NAME,"退出").click()
sleep(2)
self.driver.quit()
- 删除原来的前置方法login_to_add_division_page
- 删除原来的后置方法exit_and_close_browser
- 测试方法自动执行fixture里的前置和后置处理。
def test_add_division(self,division_name,message):运行调试第四版第一子版本
driver = self.driver
……
assert self.is_element_present(By.XPATH,f"//td[@field='name']/div[text()='{division_name}']")
- 运行,查看结果
作者:暄总-tester