首页 > 其他分享 >Selenium57-使用fixture

Selenium57-使用fixture

时间:2022-12-31 01:33:06浏览次数:39  
标签:fixture self driver element Selenium57 使用 ID find

第四版使用fixture

  • test_后台_双创_基础设置_赛区管理_添加赛区_case_v4_1.py
    • 使用fixture来做前置和后置处理。
    • 使用yield来分隔前置后后置处理步骤。

定义prepare_and_exit方法

  • 定义prepare_and_exit方法:实现前置/后置操作
    @pytest.fixture(scope='function', autouse=True)
    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()

自动使用fixture

  • 删除原来的前置方法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}']")

运行调试第四版第一子版本

  • 运行,查看结果

标签:fixture,self,driver,element,Selenium57,使用,ID,find
From: https://www.cnblogs.com/sean-test/p/17016159.html

相关文章