selenium设置等待时间

在selenium自动化测试中,如果遇到元素定位失败的问题,可能是因为程序执行速度过快,网页元素未完全加载。解决方案包括强制等待(如time.sleep())和显性等待(WebDriverWait())。显性等待允许程序每隔一段时间检查元素是否出现,直到达到预设的超时时间。这里以自动登录和密码填充为例,展示了如何在实际操作中应用这些等待策略。
摘要由CSDN通过智能技术生成

当写好selenium代码后运行发行无法定位元素,则这个时候就要考虑

  1. 程序运行太快导致 网页元素标签之类的还未加载成功
  2. 网速差劲

所以说要设置等待时间,等待元素加载出来

  1. 强制等待 即 sleep time.sleep(3) 显性的设置等待时间 有点傻
  2. 显性等待

WebDriverWait(driver,20,0.5).until(expected_conditions.prosence_of_element_located(locator))

selenium 中的wait模块的WebDriverWait() 方法,配合until或者until_not 方法,再辅助以一些判断条件,

每经过多少秒就查看locator元素是否可见,如果可见就停止等待,如果不可见就继续等待,直到报超时异常

实际例子

#! /opt/anaconda3/bin/python3
#脚本第一句声明采用什么解释器,然后直接将脚本放到PATH里面即可
import sys
#建议采用chrome比firefox启动快一点,也更好看点
#目前采用chromium-driver自动升级省去了配置升级的麻烦
#要不然还得下载相应版本的驱动,更新后又是麻烦
from selenium import webdriver
chrome_options = webdriver.ChromeOptions(); 
#隐私模式
chrome_options.add_argument("--incognito")
#新的设置忽略头部的chrome is auto controlled 信息
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']);
driver = webdriver.Chrome
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Selenium中,等待时间是非常重要的,它用于处理页面加载、元素定位和操作的同步问题。Selenium提供了两种等待方式:隐式等待和显式等待。 1. 隐式等待(Implicit Wait):通过设置一个全局的等待时间,在查找元素时,如果元素没有立即出现,Selenium等待一段时间再进行查找。如果在等待时间内找到了元素,则立即执行后续操作;如果超过等待时间仍未找到元素,则抛出NoSuchElementException异常。隐式等待只需要设置一次,对整个WebDriver的生命周期都有效。 示例代码: ```python from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(10) # 设置隐式等待时间为10秒 driver.get("https://www.example.com") element = driver.find_element_by_id("myElement") ``` 2. 显式等待(Explicit Wait):通过指定等待条件和最长等待时间,来等待某个特定条件满足后再执行后续操作。显式等待更加灵活,可以根据具体的条件来等待,例如等待元素可见、可点击、存在等。如果在最长等待时间内满足了条件,则立即执行后续操作;如果超过最长等待时间仍未满足条件,则抛出TimeoutException异常。 示例代码: ```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("https://www.example.com") wait = WebDriverWait(driver, 10) # 设置最长等待时间为10秒 element = wait.until(EC.visibility_of_element_located((By.ID, "myElement"))) ``` 以上就是Selenium等待时间的介绍,隐式等待和显式等待都可以根据具体的需求来选择使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值