第三章 第五节 基于Python3的Webdriver API——设置等待时间之隐式等待implicitly_wait

在处理Ajax加载的网页时,Selenium的隐式等待可以帮助解决元素定位问题。implicitly_wait()设置一个最大等待时间,如果在此时间内元素加载完成则继续执行,否则超时后继续。它对整个driver生命周期有效,不同于sleep方法。隐式等待可能导致程序等待整个页面加载完成,而不仅仅是所需元素。显式等待WebDriverWait将在后续章节中详细讲解。
摘要由CSDN通过智能技术生成

现在越来越多的 web 应用使用 Ajax 技术。当一个页面加载到浏览器后,这个页面的很多元素加载的时间可能不一致,这就使得元素定位比较尴尬了。如果某个要定位的元素还没有加载出来,在定位的时候,就会抛出异常: NoSuchElementException,前面慕课网登录的实例就有这问题。这个时候,合理使用 wait ,我们就能很好的缓解这个尴尬。

一种我们可以使用Python time模块自带的sleep()方法进行强制等待,这里就不过多介绍了。此外,Selenium Webdriver 提供了两种类型的等待方法:隐式等待implicitly_wait() 和 显式等待WebDriverWait()。

隐式等待方法——implicitly_wait(),是webdirver 提供的一种超时等待,隐式地等待找到一个元素或完成一个命令,如果超出了设置时间则抛出异常。隐式等待对整个driver的生命周期都起作用,所以只要设置一次即可。千万别把隐式等待当成了sleep来用,走哪儿都来一下…

慕课网登录实例代码:

from selenium impor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
在使用 Python 的 Selenium 进行自动化测试时,有时候需要等待页面元素加载完毕才能进行下一步操作,否则可能会出现找不到元素或者元素还没有加载完全的情况。下面介绍三种设置元素等待的方法。 1. 隐式等待 隐式等待设置一个全局等待时间,当查找元素时如果未能立即找到则会等待一段时间,直到超时为止。这种等待方式在整个测试过程中都有效,比较方便。 示例代码: ```python from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(10) # 隐式等待10秒 # 接下来的操作,在元素加载完毕前最多等待10秒 ``` 2. 显式等待 显式等待是指在代码中指定等待条件,当满足条件时才进行下一步操作。这种等待方式更加灵活,可根据具体场景设置不同的等待条件,比如等待元素可见、可点击、出现在页面中等。 示例代码: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() wait = WebDriverWait(driver, 10) # 显式等待10秒 # 等待元素可见 element = wait.until(EC.visibility_of_element_located((By.ID, 'myId'))) # 等待元素可点击 element = wait.until(EC.element_to_be_clickable((By.XPATH, '//button[text()="Click Me"]'))) ``` 3. sleep 等待 sleep 是最简单的等待方式,它会暂停当前线程指定的时间,不管页面元素是否已经加载完毕。这种等待方式不太灵活,如果页面元素加载时间较长,可能会导致等待时间不够,从而出现找不到元素的情况。 示例代码: ```python from selenium import webdriver import time driver = webdriver.Chrome() # 等待3秒 time.sleep(3) # 接下来的操作,在元素加载完毕前最多等待3秒 ``` 以上三种等待方式,根据实际情况选择合适的方式即可。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Keyboard_123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值