python+selenium自动化测试,元素定位脚本都未写错但是报错。可能是页面元素未加载完成就去执行下一步。需要加等待

python+selenium做ui自动化测试,元素定位脚本都未写错但是报错。找了很久没找到问题后来加延时后就成功了。原因可能是页面元素未加载完成就去执行下一步。介绍一下常用的等待方法:
(1)强制等待:sleep(x)
这种方法比较粗暴。设置完指定延时时间后(假设sleep(4)),不管你想要的元素是否加载出来,4秒到了就会进行下一步;元素提前加载出来或者延后加载出来他都不管。
缺点:1、过于死板,设置过长影响程序执行时间,设置过短有时元素又未加载出来。
2、有可能延时的地方都要加一遍,非常累赘
(2)隐性等待:implicitly_wait(x)
implicitly_wait(10)意思是,规定要不管执行到哪步都要等待10秒,然后执行下一步。如果期间元素提前加载出来了,那就提前执行下一步。如果过了10秒元素还没加载那就会报错。(一般都是设置最长等待时间,只需要设置一次,他对整个driver的周期都起作用)
缺点:你想要的元素已经加载,也要等页面所有东西都加载完才会执行下一步。有一些css,js加载特别慢。这时候就会影响程序执行时间
(3)显性等待:WebDriverWait().until()或WebDriverWait().until_not()
大概意思:每隔几秒查看一眼条件是否成立,如果成立则执行下一步。如果不成立则继续等待,等待超过设定的最长等待时间则TimeoutException抛出异常。WebDriverWait一般搭配until()方法和until_not()方法使用。通过判断条件灵活的等待【一般格式为:WebDriverWait(driver,timeout).until(method,message=""),timeout为最长等待时间,method为要查找元素的方法。message为method返回的结果。】
(大概的个人理解的意思,大家可以去官网查阅WebDriverWait的具体使用)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值