您当前的位置:首页 > 计算机 > 编程开发 > Python

设置元素等待 selenium+Python

时间:03-13来源:作者:点击数:

1、强制等待

> import  time 
> time.sleep(seconds)
> from time import sleep
>  sleep(seconds)

代码执行到等待处以后会强制休眠seconds 这么长时间,然后再会继续往下执行。

-----------使用较少。

2、隐式等待

> driver.implicitly_wait(seconds)

只需要在开头设置一次,后面所有的查找元素都可以使用。

会等待所有的资源都加载完成以后,才算等待结束

隐式等待的弊端:会消耗一部分时间去等待不需要操作的元素。

假如在设置的时间范围内元素还没有加载出来,则会超时,timeout。

隐式等待使用较少。

3、显式等待

显式等待 直到 元素加载出来以后才会操作。如果等待的元素出现不会继续去等待,如果超时则会报错。

=显式等待===========

from selenium.webdriver.common.by import By                 #  导入By模块用来定位元素
from selenium.webdriver.support.ui import WebDriverWait     #  导入等待的模块
from selenium.webdriver.support import expected_conditions  # 导入预期的条件

显式等待

ele = WebDriverWait(driver=driver, timeout=10, poll_frequency=0.3).\
    until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, ".right")))

eles = WebDriverWait(driver, 10, 0.2).until(expected_conditions.presence_of_all_elements_located((By.CSS_SELECTOR, ".right")))

# driver.find_elements_by_css_selector("")  #  列表
# print (type(eles))

PEP 8 # 编写代码的规范

driver 表示实例化的浏览器驱动对象

timeout 表示设置的超时时间

poll_frequency 表示轮询时间,表示两次查找元素之间的时间间隔。

presence_of_element_located(locator) 需要以 元组 的形式传递参>数 例如使用id定位元素,则实参就是(By.ID, “id属性的值”)

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门