webdriver_api_设置元素等待

设置元素等待-----元素定位时的操作

1.sleep(s)              python time模块下面的方法

2.implicitly_wait(s)    webdriver隐式等待

3.显示等待              seleniu模块中的EC类提供的方法

sleep:强制等待,比如sleep(50)强制等待50秒,50之内不做任何事情。

implicitly_wait(s):隐式等待比如implicitly_wait(100)在100以内,如果元素在第三秒被加载出来,自动执行下面的脚本,不会一直等待100s,如果说在超过100秒以外,元素依然没有被加载出来,那就会报错!NosuchElementError错。改方法是webdriver api 提供的方法

webdriver提供的方法都要用dr.这样的句柄来写比如dr.get("www.baidu.com")

#隐式等待

from selenium import webdriver

dr = webdriver.Chrome()

dr.get("www.baidu.com")

dr.implicitly_wait(100)

dr.find_element_by_id("kw").send_keys("123")

dr.find_element_by_id("su").click()

dr.quit()

3.显示等待(自动化优先用)

#要先引入类

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By #By元素定位的封装的另一种写法

#显示等待

try:

    element = WebDriverWait(dr,5,0.5) .until(EC.presence_of_element_located((By.ID,"kw")))

    element.send_keys("123")

    sleep(3)

    dr.find_element_by_id("su").click()

except Exception as a

    pass    

finally:

    dr.quit()

#(dr,5,0.5):表示获取驱动,最多等待5秒,每0.5秒检查元素是否加载出来。加载出来了就运行下边的代码,没加载出来那就0.5秒0.5秒的叠加直到加载出来为止

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容