selenium,最正确的网页等待方式

发表于:2022-4-01 09:42

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

 作者:诗一样的代码    来源:稀土掘金

  Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。他支持市场上绝对多数的浏览器。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成?.Net、Java、Perl等不同语言的测试脚本。
  看了Selenium的简介有没有觉得它很牛呢?其实即使我们并非是做自动化测试的工作,学会这个软件也可以在生活中帮我们大忙。它除了用于自动化测试,还能用于爬虫上面。
  接触过爬虫的小伙伴都知道静态网页是最好爬的。但是要是遇到动态加载,懒加载,js脚本加载的页面那就没那么好爬了。因为直接获取网站的时候,网页甚至没有打开。这时候用Selenium是一个非常正确的选择。
  我们用Selenium只需要加个等待函数就行了。
  方法一:
  # 等待 3 秒 
  from time import sleep 
  sleep(3)
  
  这是python本来就有的等待命令,无论如何都会等上3秒才会执行下一步。那么这个方法是有缺陷的。它会遇到两种问题。
  问题一:要是等待了3秒,但是网站还是没有加载完,这样子继续执行就会因为取不到网页有的元素而报错。
  问题二:当然我们可以直接固定5秒,10秒等待。不过这样子就会造成等待时间的浪费。
  方法二:
  driver.implicitly_wait(10)
  
  上面的语句用的是selenium里面的方法,具体是每0.5秒执行一下寻找元素,要是找到那就直接不用等待。然后这里的10是最大的等待时间。
  用implicitly_wait可以避免了等待时间的浪费。是更加科学的等待方式。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号