selenium设置等待时间

selenium设置等待时间


#导入 WebDriverWait包

from  selenium.webdriver.support.uiimport WebDriverWait

#导入 time包importtime

sleep()   设置固定等待时间

——如:time.sleep(5)  #等待5秒

implicitly_wait()   等待一个元素被发现,或一个命令完成,超出了设置时间则抛出异常

——如:driver.implicitly_wait(30)

         driver.find_element_by_id("id").click()

WebDriverWait()   在设置时间内,默认每隔一段时间检测

检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常

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

——driver:WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)

——timeout:最长超时时间,默认以秒为单位

——poll_frequency:休眠时间的间隔(步长)时间,默认为 0.5 秒

——ignored_exceptions:超时后的异常信息,默认情况下抛 NoSuchElementException异常

——如1:element = WebDriverWait(driver,10).until(lambda

 x : x.find_element_by_id("id"))

         element.send_keys("selenium")

——如2:element = WebDriverWait(driver, 10).until(lambda x:x.find_element_by_id(“Id”))

          is_disappeared = WebDriverWait(driver, 30, 1,(ElementNotVisibleException)).until_not(lambda

 x:x.find_element_by_id(“someId”).is_displayed())

WebDriverWai()一般由 unit()或 until_not()方法配合使用:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium中,等待时间是非常重要的,它用于处理页面加载、元素定位和操作的同步问题。Selenium提供了两种等待方式:隐式等待和显式等待。 1. 隐式等待(Implicit Wait):通过设置一个全局的等待时间,在查找元素时,如果元素没有立即出现,Selenium等待一段时间再进行查找。如果在等待时间内找到了元素,则立即执行后续操作;如果超过等待时间仍未找到元素,则抛出NoSuchElementException异常。隐式等待只需要设置一次,对整个WebDriver的生命周期都有效。 示例代码: ```python from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(10) # 设置隐式等待时间为10秒 driver.get("https://www.example.com") element = driver.find_element_by_id("myElement") ``` 2. 显式等待(Explicit Wait):通过指定等待条件和最长等待时间,来等待某个特定条件满足后再执行后续操作。显式等待更加灵活,可以根据具体的条件来等待,例如等待元素可见、可点击、存在等。如果在最长等待时间内满足了条件,则立即执行后续操作;如果超过最长等待时间仍未满足条件,则抛出TimeoutException异常。 示例代码: ```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() driver.get("https://www.example.com") wait = WebDriverWait(driver, 10) # 设置最长等待时间为10秒 element = wait.until(EC.visibility_of_element_located((By.ID, "myElement"))) ``` 以上就是Selenium等待时间的介绍,隐式等待和显式等待都可以根据具体的需求来选择使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值