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

Selenium57-使用fixture

时间:2023-01-07 14:10:00浏览次数:43  
标签: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}']")
运行调试第四版第一子版本
  • 运行,查看结果
  • Selenium57-使用fixture_基础设置




作者:暄总-tester











标签:fixture,self,driver,element,Selenium57,使用,ID,find
From: https://blog.51cto.com/u_14911999/5995460

相关文章

  • Selenium58-优化fixture
    v4_1问题代码运行效率较低:prepare_and_exit包含所有前置和后置步骤,每组测试数据都从重新启动浏览器开始到关闭浏览器结束。。思考:是否可以省略每组数据测试时的重新启动浏......
  • Selenium62-使用POM的测试用例
    添加赛区脚本test_后台_双创_基础设置_赛区管理_添加赛区_case_v7.py导入各个网页对象改造to_division_manager导入各个网页对象导入各个网页对象:frompage.后台_主页_page......
  • Selenium60-使用csv文件
    为什么要使用csv文件格式问题:参数化的测试数据存在于py文件里,不利于维护。方案:利用外部文件存储测试数据。文件格式选择csv的原因:csv格式较为通用、简单、方便读取。什么......
  • laravel whereExists使用
    whereExists方法允许你使用whereexistsSQL语句。whereExists方法接收一个闭包作为参数,该闭包获取一个查询构建器实例,从而允许你定义放置在「exists」字句中的查......
  • Git使用教程之本地仓库的基本操作
    1、Git是什么?一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统。①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样我们可以选择在合......
  • C#中线程和定时器的使用记录
    记录学习代码。使用线程,创建一个消息队列阻塞等待消息。使用定时器,每隔一秒钟发送一条消息。监听键盘Esc按键实现程序退出。代码如下:1usingSystem;2usingSy......
  • Python库之os库和logging库的基本使用说明
    使用os库操作目录及文件使用os.sep()方法获取系统分隔符print(os.sep)使用os.name()方法获取操作系统的平台类型print(os.name)使用os.getcwd()方法获取当前工作目录p......
  • 使用Flask快速部署PyTorch模型
    对于数据科学项目来说,我们一直都很关注模型的训练和表现,但是在实际工作中如何启动和运行我们的模型是模型上线的最后一步也是最重要的工作。今天我将通过一个简单的案例:部......
  • 使用Swagger和OpenAPI 3规范定义API接口并集成到SpringBoot
    1.OpenAPI3规范介绍及属性定义参考官方定义:https://swagger.io/specification/2.使用OpenAPI3规范定义API接口官方样例参考:https://editor.swagger.io/可以在此页......
  • 使用python发送系统通知(适用于linux,windows等)
    使用pip安装:pip3installplyer使用方法:fromplyerimportnotificationnotification.notify(title="test", #标题message="aaaa", #内容app_ic......