设置元素等待 selenium+Python

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属性的值”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@chameleon

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

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

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

打赏作者

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

抵扣说明:

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

余额充值