码迷,mamicode.com
首页 > 其他好文 > 详细

设置元素等待

时间:2020-05-26 18:39:57      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:expected   ons   partial   没有   https   返回   timeout   参数   text   

隐式等待

driver.implicitly_wait(10)

默认参数的单位为秒,本例中设置等待时长为10秒。当脚本执行到某个元素定位时,如果元素可以定位,则继续执行;

如果元素定位不到,则它将以轮询的方式(0.5s)不断地判断元素是否被定位到。假设在第6秒定位到了元素则继续执行,若直到超出设置时长(10秒)还没有定位到元素,则抛出异常

优点:一次设置,全局通用,

缺点:浪费时间,每次定位元素前都至少需要0.5秒的轮询,即对以后的所有元素都生效

from selenium import webdriver
import time
driver = webdriver.Chrome(‘D:\\tools\chromedriver.exe‘)
#设置隐式等待
driver.implicitly_wait(10)
driver.get(‘https://www.baidu.com/‘)
driver.find_element_by_id(‘kw‘).send_keys(松勤\n)
# time.sleep(2)
driver.find_element_by_partial_link_text(腾讯课堂).click()
driver.close()

 

显示等待

使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)

优点:只对声明了显示等待的元素生效

缺点:麻烦,import 3个,使用也麻烦

 

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  #提供判断条件
import time
driver = webdriver.Chrome(‘D:\\tools\chromedriver.exe‘)
#get元素会等待所有元素加载完成
driver.get(‘https://www.baidu.com/‘)
driver.find_element_by_id(‘kw‘).send_keys(松勤\n)


#超时时间 10s,轮询时间0.5s,即每隔0.5秒检查一次,最多等待10s,返回元素对象
ele = WebDriverWait(driver,10,0.5).until(
    EC.visibility_of_element_located(
        (By.LINK_TEXT,松勤软件测试_腾讯课堂)
    )
)
ele.click()  #等价于driver.find_element_by_link_text(‘松勤软件测试_腾讯课堂‘).click()
driver.close()

 

设置元素等待

标签:expected   ons   partial   没有   https   返回   timeout   参数   text   

原文地址:https://www.cnblogs.com/like1824/p/12966967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!