当前位置: 首页 > news >正文

通州企业网站建设石家庄网站建设模板

通州企业网站建设,石家庄网站建设模板,2018建设网站,企业网络专线Selenium 的四种等待方式及使用场景 隐式等待(Implicit Wait)显式等待(Explicit Wait)自定义等待(Custom Wait)固定等待(Sleep) 1. 隐式等待 定义: 隐式等待是为 WebD…

Selenium 的四种等待方式及使用场景

  1. 隐式等待(Implicit Wait)
  2. 显式等待(Explicit Wait)
  3. 自定义等待(Custom Wait)
  4. 固定等待(Sleep) 

1. 隐式等待

定义: 隐式等待是为 WebDriver 设置一个全局的超时时间,在此时间内,如果目标元素未出现,WebDriver 会定期轮询检查该元素是否存在,一旦找到立即继续执行后续代码。

适用场景:
适用于页面加载较慢但元素固定的场景,比如登录后的静态页面。

代码示例:

from selenium import webdriverdriver = webdriver.Chrome()# 设置隐式等待为10秒
driver.implicitly_wait(10)driver.get("https://example.com")
element = driver.find_element_by_id("some_element")
element.click()driver.quit()

2. 显式等待

定义: 显式等待是为某些特定的元素设置等待条件和超时时间,直到满足条件后才会继续执行。常用 WebDriverWait 类和 expected_conditions 模块。

适用场景:
适用于页面动态加载,元素需要特定条件才能出现的情况,例如弹窗加载、按钮变为可点击等。

常用条件:

  • presence_of_element_located:等待元素出现在 DOM 中,但不一定可见。
  • visibility_of_element_located:等待元素出现在 DOM 中且可见。
  • element_to_be_clickable:等待元素可见并可点击。

代码示例:

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 ECdriver = webdriver.Chrome()
driver.get("https://example.com")# 设置显式等待条件:等待某按钮元素可点击
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, "some_button")))
element.click()driver.quit()

3. 自定义等待

定义: 通过编写循环逻辑,自定义等待条件。适合复杂或独特的场景,比如需要检查某些动态值或自定义条件是否满足。

适用场景:
用于特殊条件判断,如根据页面元素的特定属性或文本值动态等待。

代码示例:

import time
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://example.com")# 自定义等待
timeout = 10
poll_frequency = 0.5  # 每0.5秒检查一次
elapsed_time = 0while elapsed_time < timeout:try:element = driver.find_element_by_id("some_element")if element.is_displayed():print("Element found!")breakexcept:passtime.sleep(poll_frequency)elapsed_time += poll_frequency
else:print("Timeout: Element not found")driver.quit()

4. 固定等待

定义: 使用 Python 的 time.sleep() 方法,强制线程暂停指定的时间,无论目标元素是否已经加载完成。

适用场景:

  • 临时调试代码,观察执行过程。
  • 页面完全静态、加载时间稳定的场景。
  • 作为最后的兜底方案。

代码示例:

import time
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://example.com")# 固定等待5秒
time.sleep(5)# 查找元素并点击
element = driver.find_element_by_id("some_element")
element.click()driver.quit()

四种等待方式对比

等待方式优点缺点适用场景
隐式等待全局生效,代码简洁不够灵活,无法单独为某元素设置等待条件静态页面,目标元素加载时间固定
显式等待灵活性高,可设置条件和单独的超时时间代码复杂,需要明确等待条件动态页面,特定元素需要等待某些条件完成时
自定义等待满足特定场景需求,可实现复杂逻辑条件判断需要手动实现逻辑,代码复杂条件特殊且显式等待无法满足的场景
固定等待简单直接,适合调试低效,不灵活,可能浪费时间调试代码、加载时间固定的静态场景
http://www.yayakq.cn/news/277852/

相关文章:

  • 行业网站系统网站后台模板怎样使用
  • 投资者网站建设做网上贸易哪个网站好
  • 百度官方网站下载安装推广赚钱软件
  • 自学搭建网站wordpress字体格式
  • 网站开发与维护相关课程南通网站建设设计
  • 广东网站建设微信商城运营惠州市建设交易中心网站
  • 如何查询网站空间大小app开发定制的公司哪家好
  • 如何建设商城网站wordpress 收费主题破解版
  • 从零开始学网站建设知乎企业网站策划建设方案
  • sharepoint网站制作今天哈尔滨最新通知
  • html5网站是用什么软件做的网站建设栏目流程
  • 怎样做分类网站郑州网站建设搜索优化
  • 山西营销型企业网站开发自己建设网站平台步骤
  • 网站认证是什么网络营销的定义和特点
  • 玉树商城网站建设彩票网站建设古大学
  • 上海网站建设口碑好兰州装修公司位置
  • 网站排名如何提升重庆石桥铺网站建设公司
  • 硅云wordpress东莞百度网站排名优化
  • 如何购买网站继续教育培训网站开发
  • 淘客网站推广免备案wordpress开启子域名多站
  • 做环评工作的常用网站虚拟主机建站
  • 网站 租用服务器微博推广技巧
  • 东营网站排名如何用手机免费开网店
  • 网站服务器 内容更新平台公司和项目公司的区别
  • 做一个配送网站阿里巴巴官网下载安装
  • 莲花网站网站备案拍照要求
  • 东莞建设网站官网企业信用信息网
  • 河北省建设安全监督站的网站深圳公明网站建设公司
  • 潍坊市高新区建设局网站做亚马逊有什么网站可以借鉴
  • 活动发布类网站开发seo技术介绍