如何在 Python 中让 Selenium WebDriver 休眠几毫秒
- 2024-11-20 08:44:00
- admin 原创
- 8
问题描述:
我time
在我的脚本中使用该库:
import time
time.sleep(1)
它可以使我的 Selenium WebDriver 休眠一秒钟,但是 250 毫秒怎么可能呢?
解决方案 1:
要暂停webdriver 的执行number of seconds
几毫秒,您可以传递或floating point number of seconds
如下内容:
import time
time.sleep(1) #sleep for 1 sec
time.sleep(0.25) #sleep for 250 milliseconds
但是,在使用Selenium和WebDriver进行自动化时,如果time.sleep(secs)
没有任何特定条件,就会违背 自动化的目的,应不惜一切代价避免。根据文档:
time.sleep(secs)
暂停当前线程的执行,暂停时间是给定的秒数。参数可以是浮点数,以指示更精确的休眠时间。实际暂停时间可能小于请求的时间,因为任何捕获的信号都会在执行该信号的捕获例程后终止 sleep()。此外,由于系统中其他活动的调度,暂停时间可能比请求的时间长任意长。
因此,根据讨论,time.sleep(sec)
您应该使用WebDriverWait()
in-construction withexpected_conditions()
来验证元素的状态,三个广泛使用的 expected_conditions 如下:
元素存在位置
presence_of_element_located(locator)定义如下:
class selenium.webdriver.support.expected_conditions.presence_of_element_located(locator)
Parameter : locator - used to find the element returns the WebElement once it is located
Description : An expectation for checking that an element is present on the DOM of a page. This does not necessarily mean that the element is visible or interactable (i.e. clickable).
元素位置的可见性
visibility_of_element_located(locator)定义如下:
class selenium.webdriver.support.expected_conditions.visibility_of_element_located(locator)
Parameter : locator - used to find the element returns the WebElement once it is located and visible
Description : An expectation for checking that an element is present on the DOM of a page and visible. Visibility means that the element is not only displayed but also has a height and width that is greater than 0.
可点击元素
element_to_be_clickable(locator)定义如下:
class selenium.webdriver.support.expected_conditions.element_to_be_clickable(locator)
Parameter : locator - used to find the element returns the WebElement once it is visible, enabled and interactable (i.e. clickable).
Description : An Expectation for checking an element is visible, enabled and interactable such that you can click it.
参考
您可以在WebDriverWait 未按预期工作中找到详细讨论
解决方案 2:
time.sleep()
采用浮点参数:
time.sleep(0.25)
文档(它们值得一读,尤其是因为它们解释了睡眠时间可能比预期的更短或更长的条件)。
解决方案 3:
如果您希望它在几毫秒内进入睡眠状态,那么请使用浮点值:
import time
time.sleep(0.25)
#0.25 > 250ms
#0.1 > 100ms
#0.05 > 50ms
解决方案 4:
理论上,time.sleep(0.25)
需要等待 250 毫秒。但实际等待时间可能更短或更长,而不是恰好是 250 毫秒。这是因为:
实际暂停时间可能小于请求时间,因为任何捕获的信号都会在执行该信号的捕获例程后终止 sleep()。此外,由于系统中其他活动的调度,暂停时间可能比请求时间长任意长。
使用 selenium 进行等待的其他方法包括:
隐式等待:
driver.implicitly_wait(0.25)
明确等待:
WebDriverWait(driver).until(document_initialised)
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件