selenium的三种等待方式

倾然丶 夕夏残阳落幕 提交于 2020-02-20 05:18:27

selenium有三种等待方式

1、time.sleep()

设置等待最简单的方法就是强制等待,但一般不建议使用,可以在调试的时候进行使用

2、隐性等待

driver.implictily_wait(),隐性等待设置了一个时间,在一段时间内网页是否加载完成,如果完成了,就进行下一步,在设置的时间内没有加载完成,就会报超时加载

from selenium import webdriverimport timedriver=webdriver.Chrome()driver.implicitly_wait(20)#隐性等待,最长等20s,如果完成了,就操作下一步,如果没有完成,就报超时加载driver.get('http://ui.imdsx.cn/uitester/')# 最大化浏览器driver.maximize_window()# 定位到页面顶部js='window.scrollTo(0,0)'driver.execute_script(js)隐性等待的设置是全局性的,在开头设置过后,整个程序的运行过程中都会有效,都会等待页面加载完成,不需要每次设置一遍。3、显示等待每经过多少秒就查看一次local的元素是否可见,如果可见就停止等待,如果不可见
# author=zyqfrom selenium import webdriverimport timedriver=webdriver.Chrome()driver.implicitly_wait(20)#隐性等待,最长等20s,如果完成了,就操作下一步,如果没有完成,就报超时异常,driver.get('http://ui.imdsx.cn/uitester/')# 最大化浏览器driver.maximize_window()# 定位到页面顶部js='window.scrollTo(0,0)'driver.execute_script(js)from selenium.webdriver.support.wait import  WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By# driver[传入webdriver实例], timeout[超时时间,等待的最长时间], poll_frequency[调用until或者until_not中的方法的间隔时间]WebDriverWait()# until(method,message)# method:在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是false# message:如果超时,抛出超时的异常s = (By.CSS_SELECTOR,'#i1')WebDriverWait(driver,10,0.5).\    until(EC.presence_of_element_located(s))driver.find_element_by_css_selector('#i1').send_keys(111)# WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!