首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python学习之三种等待时间

python学习之三种等待时间

1,强制等待:不论页面是否加载完成,都要等待指定时间后才执行下一步,单位s,time.sleep(指定时间)

2,隐形等待:页面加载完成则执行下一步,没有加载完成,则继续等待直到指定时间后在执行下一步,单位s,implicitly_wait(指定的时间)

3,显性等待:每个指定的时间调用一次until中的method方法(这个方法可以使用来判断某个元素是否存在的方法,存在返回true,否则返回false),

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

driver:webdriver的驱动程序(ie,firefox,chrome,或远程)

timeout:最长超时时间,默认单位s

poll_frequency=0.5:休眠时间的间隔时间,默认为0.5秒

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

隐式等待是等页面加载,而不是元素加载!!!(隐式等待就是针对页面的,显式等待是针对元素的。)

import time

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

#强制等待,不论页面是否加载完成,都是等待20秒后继续执行下一步

print('第一次执行')

time.sleep(2)#等待2s后执行下面的内容

print('等待2s后执行')

#隐形等待,页面加载完成则执行下一步,没有加载完成,则继续等待直到10秒后再执行下一步

driver = webdriver.Chrome()

driver.maximize_window()

driver.get('http://www.baidu.com')

driver.implicitly_wait(20)#隐形等待20,页面加载完成则下一步,没有完成等指定时间后下一步

print(driver.title)

driver.close()

# 显性等待,每隔0.3s调用一次until中的method方法(这个方法可以是用于判断某个元素是否存在的方法,存在返回true,否则返回false),

# 最长等待10秒,10秒后继续执行下一步

driver1 = webdriver.Chrome()

driver1.maximize_window()

driver1.get('http://www.baidu.com')

try:

  elements = WebDriverWait(driver1,10).until(EC.presence_of_element_located((By.ID,'kw')))

  print(driver1.title)

finally:

  driver1.quit()

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190828A0AWUZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券