Selenium脚本编写注意点(一)

发表于:2021-1-25 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Gina66    来源:掘金

  在通过python+selenium编写ui自动化脚本的时候,我遇到过很多需要注意的点,今天分享给大家一下。
  一、睡眠时间
  1、 强制等待时间 sleep()
  必须导入time包后才可以使用,强制等待生效时间=页面跳转时间+sleep()设置休眠时间
  强制等待时间使用语法:sleep(s) s表示时间,以秒为单位 例:sleep(2) 休眠2s
  2、显示等待时间 WebDriverWait()
  必须导入WebDriverWait包才可以使用,显示等待时间是针对单个元素生效的,当在规定时间内找到了对应元素,则执行下一步操作。
  显示等待时间使用语法:
  WebDriverWait(x,y,z).until(lambda x:x.find_element_by_元素定位方法(“对应元素方法的值”))
  x表示网页窗口对象
  y表示总等待时间(s)
  z表示等待过程中,每隔多久查看一次元素,单位s
  ntil是固定格式,可以理解为直到元素定位到为止,lambda x:x是一个匿名函数构建的方法,这里不太好理解可以理解为固定格式lambda总体就是网页窗口对象,而后面的.find_element_by_…就是援用之前的定位方法
  3、隐式等待时间 implicitly_wait()
  智能等待时间,是针对全局的元素都生效,不需要导入包。当在规定时间内找到了对应元素,则执行下一步操作。
  隐等待时间使用语法: 网页对象名.implicity_wait()
  from selenium import webdriver
  from time import sleep #导入强制等待时间的包
  from selenium.webdriver.support.ui import WebDriverWait #导入显示等待时间的包
  dr = webdriver.Firefox()
  dr.maximize_window()
  dr.implicitly_wait(5) #隐式时间等待,智能等待,针对于全局
  dr.get(“https://www.baidu.com”)
  sleep(2) #休眠2s
  a = WebDriverWait(dr,10,2).until(lambda x:x.find_element_by_id(“kw”)) #显示等待时间,针对于单个元素进行时间的等待
  a.send_keys(“123”)
  #总结:只针对一个元素进行时间的等待,要是找不到该元素则会一直消耗完所有的等待时间才进行下一步
  二、定位alert弹出框
  alert弹出框包含三种:
  alert 提醒对话框
  confirm 确认对话框
  prompt 要求用户输入,然后返回结果的对话框
  1、定位方法
  switch_to.alert:定位到alert/confirm/prompt
  text:返回alert/confirm/prompt 中的文字信息。
  accept:点击确认按钮。
  dismiss:点击取消按钮,如果有的话。
  send_keys:输入值,这个alert\confirm 没有对话框就不能用了,不然会报错。
  2、alert用法
  3、confirm用法
  4、prompt用法

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号