51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 865|回复: 0
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    无聊
    6 小时前
  • 签到天数: 1051 天

    连续签到: 1 天

    [LV.10]测试总司令

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

    上面的语句用的是selenium里面的方法,具体是每0.5秒执行一下寻找元素,要是找到那就直接不用等待。然后这里的10是最大的等待时间。
      用implicitly_wait可以避免了等待时间的浪费。是更加科学的等待方式。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 15:49 , Processed in 0.062225 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表