初学者的Selenium自动化测试指南,基于Python(六)——如何设置元素等待

    上一节基于Python的Selenium自动化测试(五)——常用键盘事件 中介绍了常用的键盘事件,这一节我们将继续介绍如何设置元素等待。

    WebDriver提供了两种类型的等待:显示等待和隐式等待。

一、显示等待

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

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

    driver:WebDriver 的驱动程序

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

    poll_frequency:检测的时间间隔,默认为 0.5 秒

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

    WebDriverWait()一般与 until()(或 until_not())方法配合使用。

    until(method, message=’ ’)                                 调用该方法,直到该方法返回值为 Ture。
    until_not(method, message=’ ’)                          调用该方法,直到该方法返回值为 False。

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("http://www.baidu.com")

element=WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'kw')))
element.send_keys("Selenium")
driver.find_element_by_id("su").click()
driver.quit()
二、隐式等

    隐式等待是通过一定的时长等待页面元素加载完成。哪果超出了设置的时长,元素还没有被加载测抛NoSuchElementException 异常。 

    driver.implicitly_wait(timeout)

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

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from time import ctime

driver=webdriver.Chrome()

#设置隐式等待为10秒
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")

try:
    print(ctime())
    driver.find_element_by_id("kv").send_keys('selenium')
except NoSuchElementException as e:
    print(e)
finally:
    print(ctime())
    driver.quit()
更多关于Selenium自动化测试的源码,欢迎查看我的github
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值