Python-Selenium 显性等待
2023-12-15 10:33:22
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
# 谷歌浏览器位置
CHROME_PATH = r'C:\chrome-win32\chrome.exe'
# 谷歌浏览器驱动地址
CHROMEDRIVER_PATH = r'C:\chrome-win32\chromedriver.exe'
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
options.binary_location = CHROME_PATH
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)
# 隐性等待20秒
driver.implicitly_wait(20)
driver.get('https://www.baidu.com/')
# 第一种写法
# 样式一
try:
# 设置等待
wait = WebDriverWait(driver,10,0.5)
# 使用匿名函数
element = wait.until(lambda diver:driver.find_element_by_id('kw'))
except Exception as e:
# 异常:selenium.common.exceptions.TimeoutException: Message:
raise
else:
element.send_keys('selenium')
finally:
pass
# 样式二
try:
element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id('kw'))
except Exception as e:
# 异常:selenium.common.exceptions.TimeoutException: Message:
raise
else:
element.send_keys('selenium python')
finally:
pass
# 样式三
try:
element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id('su2'), '未找到元素')
except Exception as e:
# Message: 未找到元素
raise
else:
element.click()
其他:
# 我们设置了隐性等待和显性等待,在其他操作中,隐性等待起决定性作用,在WebDriverWait..中显性等待起主要作用,但要注意的是:最长的等待时间取决于两者之间的大者,此例中为20,如果隐性等待时间>显性等待时间,则该句代码的最长等待时间等于隐性等待时间 参考: https://zhuanlan.zhihu.com/p/378919132 https://blog.csdn.net/qq_38741986/article/details/91348845 https://blog.csdn.net/sinat_41774836/article/details/88965281
文章来源:https://blog.csdn.net/yudiandian2014/article/details/134931311
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!