selenium 设置等待时间

sleep():设置固定休眠时间。python的time包提供了休眠方法sleep() ,导入time包后就可以使用sleep() 进行脚本的执行过程进行休眠。

implicitly_wait():是 webdirver 提供的一个超时等待。隐的等待一个元素被发现,或一个命令完成。 如果超出了设置时间的则抛出异常。

WebDriverWait():同样也是 webdirver 提供的方法。在设置时间内,默认每隔一段时间检测一次当前 页面元素是否存在,如果超过设置时间检测不到则抛出异常。

 

示例:

 

sleep()方法以秒为单位,一般小于1秒,可以用小数表示。辅助webDriverWait使用

如:time.sleep(0.5)

也可以直接导入 sleep()方法,如下:

from time import sleep
....
sleep(3)
sleep(30)

 

implicitly_wait():针对所有操作

implicitly_wait()方法比 sleep() 更加智能,后者只能选择一个固定的时间的等待,前者可以在一个时间 范围内智能的等待。

 

WebDriverWait():针对1个操作,出现新的页面需要操作的时候,需要设置等待时间

详细格式如下:

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
timeout - 最长超时时间,默认以秒为单位,等待时长
poll_frequency - 休眠时间的间隔(步长)时间,默认为 0.5 秒,轮循周期
ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。

WebDriverWai()一般由 unit()或 until_not()方法配合使用,下面是 unit()和 until_not()方法的说明。

until(method, message=’ ’)
调用该方法提供的驱动程序作为一个参数,直到返回值不为 False。
until_not(method, message=’ ’)

调用该方法提供的驱动程序作为一个参数,直到返回值为 False。

示例:

 

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as Ec
from selenium.webdriver.common.by import By

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
#driver.implicitly_wait(30)
#查找到登录按钮,并密码用户名登录框
driver.find_element_by_xpath('//div[@id="u1"]//a[text()="登录"]').click()
id="TANGRAM__PSP_11__footerULoginBtn"

WebDriverWait(driver,10).until(Ec.visibility_of_element_located((By.ID,id)))#元组形式传入
#点击用户名和密码方式
driver.find_element_by_id("TANGRAM__PSP_11__footerULoginBtn").click()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值