python 隐式等待与显示等待

目录

隐式等待:

显示等待


隐式等待 10秒钟

from selenium import webdriver

option = webdriver.ChromeOptions()

option.add_experimental_option('useAutomationExtension', False)
option.add_experimental_option('excludeSwitches', ['enable-automation'])

# 打开chrome浏览器
driver = webdriver.Chrome(options=option)
driver.implicitly_wait(10)  # 隐式等待10秒
driver.get("http://www.baidu.com")
ele = driver.find_element_by_xpath('//input[@id="kw"]')
print(ele.tag_name)
print(ele.get_attribute("name"))
print(ele)

可以看出来隐式等待 只能用于元素被发现  还有其他情况比如元素不可点击 但是已经出现了,或者元素出现了但是要过段时间才能用那怎么办呢 以此引入了显示等待

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的WebDriver提供了隐式等待和显式等待两种等待方式。 隐式等待是设置一个全局的等待时间,对整个浏览器窗口的生命周期都有效。设置隐式等待后,如果WebDriver没有立即找到元素,它将在设定的时间内不断地尝试查找,直到找到元素或者时间到期。 示例代码: ```python from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(10) # 设置隐式等待时间为10秒 driver.get("http://www.example.com") elem = driver.find_element_by_id("myId") # 如果元素不在页面上,WebDriver将最多等待10秒钟。 ``` 显式等待则是针对某个特定的情况设置等待时间。通过ExpectedCondition条件判断,如果条件成立,则立即返回,否则将持续等待指定的时间,直到条件成立或者时间耗尽。 示例代码: ```python 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 driver = webdriver.Chrome() driver.get("http://www.example.com") # 显式等待10秒钟,直到元素出现 elem = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "myId")) ) ``` 需要注意的是,显式等待需要导入`WebDriverWait`和`expected_conditions`,而隐式等待则直接通过`implicitly_wait`方法设置等待时间。此外,隐式等待的缺点是会增加整个测试的执行时间,而显式等待则对特定情况下的等待更为有效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值