有时候,页面元素并未及时加载出来导致后面的步骤无法执行

这里就需要在加载前添加等待时间,让目标元素有足够的时间加载出来

第一种方法:使用time.sleep()

这种方法过于强制,无论元素是否加载出来都要等指定的时间,导致脚本执行效率不高

第二种方法:隐式等待implicitly_wait()

这种方法比较全局性,意味着一旦启用,全局有效,所有步骤都需要等待所有页面元素加载完后才会继续执行后续脚本

第三种:显示等待WebDriverWait

通俗的说法,指定的某元素,等待加载出来后,再执行后续操作。

这种等待方式可利用参数循环查询元素,超时即抛错

比如:

from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()

WebDriverWait(browser,30,0.2).until(lambda x:x.find_element_by_xpath("//span[contains(text(),'保存到网盘')]"))

超时时间30秒,每0.2秒查询一次,当能查询到xpath("//span[contains(text(),'保存到网盘')]"时,执行后面的操作,否则直到达到超时时间后,程序异常出错

使用这种等待方式,需要import库

”from selenium.webdriver.support.wait import WebDriverWait“

最新文章

  1. UWP开发之Mvvmlight实践九:基于MVVM的项目架构分享
  2. Spark 学习总结
  3. android 修改 SwitchPreferenceCompat 高度,内边距,字体大小
  4. Bash:-:-获取未来40天的日期
  5. cookie 的“Value”=“xxxxx,xxxxx”部分无效
  6. Exception-异常
  7. Swift编程语言中的方法引用
  8. (转)jQuery轻量级响应式图片轮播插件ResponsiveSlides.js(仅1kb)也可以做纯文本轮播
  9. JavaScript网站设计实践(五)编写photos.html页面,实现点击缩略图显示大图的效果
  10. c# 中List<T> union 深入理解
  11. lvchange的available參数
  12. linux文件解-压缩
  13. 利用Java内置的API开发JMX功能
  14. Linux SDK之uClinux、Broadcom、Atheros、Realtek、Ralink、Marvell、Intel
  15. Gradle 1.12用户指南翻译——第三十二章. JDepend 插件
  16. Golang中WaitGroup使用的一点坑
  17. win10下rdlc报表在vs(visual studio)中中文显示小方块的批量处理解决方法
  18. Python进阶笔记
  19. 涂抹mysql笔记-数据库中的权限体系
  20. PHP 设计模式系列 —— 工厂方法模式(Factory Method)(转)

热门文章

  1. 推荐:mysql锁 innodb下的记录锁,间隙锁,next-key锁
  2. 从头学pytorch(三) 线性回归
  3. 【一起学源码-微服务】Nexflix Eureka 源码十三:Eureka源码解读完结撒花篇~!
  4. Linux常用命令大全(三)
  5. shiro采坑指南—基础概念与实战
  6. hutool BigExcelWriter 下的autoSizeColumnAll异常问题
  7. linux入门系列4--vi/vim编辑器
  8. css写斜角
  9. VLC播放器的快捷键(shutcut)
  10. git利用hooks实现自动部署