web自动化系列元素等待

一、强制等待

一、强制等待
time.sleep(5)

二、隐式等待

语法:driver.implicitly_wait(秒)
1、整个会话只执行一次,全局起作用,后面的每一次元素查找都会进行等待,在设置的时间内元素找到就执行下一行代码,元素未找到就会报错

三、显式等待

一、包导入
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

二、WebDriverWait参数说明
1、timeout:最长超时时间,默认以秒为单位
2、poll_frequency:轮询频率,检测的间隔步长,默认为0.5s,这里会每隔 0.5 秒调用一次条件函数
3、ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常
4、可以对某个元素单独设置等待条件

三、until()结合使用
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
"写法一:分开写"
"等待,默认0.5秒检查一次元素是否出现"
"等待条件为找到某个元素结合until使用"
wait = WebDriverWait(driver=drive,timeout=10)
element_locator = (By.XPATH,'//div[@id="kw"]')
element = wait.until(EC.visibility_of_element_located(locator=element_locator))

"写法二:组合写法"
EC.presence_of_element_located():元素存在的位置
element=WebDriverWait(driver=driver,timeout=10,poll_frequency=1).until(EC.presence_of_element_located((By.ID,'//div[@class="target_id"')))

"等待多个元素出现"
wait = WebDriverWait(driver=drive,timeout=10)
wait.until(EC.visibility_of_all_elements_located(locator=location))

四、expected_conditions类

  1. 常用
    • from selenium.webdriver.support import expected_conditions
      1、visibility_of_element_located : 判断某个元素是否可见. 可见代表元素非隐藏,并且元素的宽和高都不等于0
      2、visibility_of_all_elements_located:判断多个元素是否可见,可见代表元素非隐藏,并且元素的宽和高都不等于0
      3、visibility_of :作用同visibility_of_all_elements_located传定位到的element,非定位表达式locator
      4、frame_to_be_available_and_switch_to_it : 判断该frame是否可以switch进去,如果可以的话,返回True并且switch进去,否则返回False
      5、alert_is_present : 判断页面上是否存在alert
      6、element_to_be_selected:判断某个元素是否被选中了,一般用在下拉列表
      7、element_to_be_clickable : 判断某个元素中是否可见并且是enable的,这样的话才叫clickable
      8、presence_of_element_located: 判断某个元素是否被加到了dom树里,【并不代表该元素一定可见】
      9、presence_of_all_elements_located : 等待所有元素存在dom树中【并不代表该元素一定可见】
      
  2. 其他
    • 1、title_is:判断当前页面的title是否完全等于(==)预期字符串,返回是布尔值
      2、title_contains 判断当前页面的title是否包含预期字符串,返回布尔值
      3、text_to_be_present_in_element : 判断某个元素中的text是否包含了预期的字符串
      4、text_to_be_present_in_element_value:判断某个元素中的value属性是否包含了预期的字符串
      5、invisibility_of_element_located : 判断某个元素中是否不存在于dom树或不可见
      6、staleness_of :等某个元素从dom树中移除,返回布尔值
      7、element_selection_state_to_be:判断某个元素的选中状态是否符合预期
      8、element_located_selection_state_to_be:跟上面的方法作用一样,只是上面的方法传入定位到的element,而这个方法传入locator
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值