selenium的使用(十)

关于webdriver等待问题

1. time.sleep()

该方法是强制等待,如果未加载完成也会进行下一步。

2.implicitly_wait()

隐性等待,设置一个最大等待时间,如果时间内加载完成,时间未到,也会继续等待,隐性等待可以全局使用,不用在重新设置。

3.显性等待  WebDriverWait(browser,等待时间,查看频率)

查看频率默认为0.5秒。

调用模块:

from selenium.webdirver.support.wait import WebdriverDriverWait

from selenium.webdriver.support import expected_conditions as EC

显性等待在最大时间段内,按照一定的频率查看网页,如果加载完成会进行下一步操作,否则抛出异常。

显性等待:

WebDriverWait()与until()和until_not()结合运用。

关于显性等待,有很多方法,但是在此我只列出几个常用的方法。

<1>  EC.presence_of_element_located()    判断是否存在一个符合条件的元素。

<2>  EC.presence_of_all_elements_located()   判断是否存在一个以上符合条件的元素,并返回列表。

<3>  EC.visibility_of_element_located()   判断是否存在一个 “可见” 元素

<4>  EC.visibility_of_all_elements_located()   判断是否存在一个以上的 “可见” 元素

<5>  EC.visibility_of()   这个跟<3>功能一样,只不过括号内容不一样。这个括号内可以传入    .find_element()以及.find_element_by_。。。。一系列定位方法。还是举个例子吧,  WebDriverWait(browser,13,0.5).until(EC.visibility_of(browser.find_element_by_xpath(......)))

<6>  EC.title_is()   判断title是否是括号内的字符串。

<7>   EC.title_contains()   判断title是否包含括号内的字符串。

<8>   EC.text_to_be_present_in_element((By.XPATH,'//'),'string')   判断括号内的string是否和定位的标签内的字符串是否一致。

<9>   EC.text_to_be_present_in_element_value((By.CSS_SELECTOR,'a[id="abc"]'),'string')  判断被定位的元素的属性的值是否和’string‘一致。

一般情况下上面的这些就可以满足平时的显性等待判断。

 

 

 

谢谢大家的阅读,如有不对的地方希望在评论下面指出来,谢谢。

 

转载于:https://www.cnblogs.com/sniper-huohuohuo/p/8615703.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值