首页 > 其他分享 >16.显式等待高级使用

16.显式等待高级使用

时间:2023-12-29 12:13:03浏览次数:28  
标签:webdriver 16 selenium driver 高级 element 显式 import

目录

 
  • 显式等待原理
  • expected_conditions
  • 封装等待条件

显式等待原理

 
  • 在代码中定义等待一定条件发生后再进一步执行代码
  • 最长等待时间循环执行结束条件的函数
  • WebDriverWait(driver 实例, 最长等待时间, 轮询时间).until(结束条件函数)

显式等待-expected_conditions

 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait


def wait_until():
    driver = webdriver.Chrome()
    driver.get("https://vip.ceshiren.com/#/ui_study")
    WebDriverWait(driver, 10).until(
        expected_conditions.element_to_be_clickable(
            (By.CSS_SELECTOR, '#success_btn')))
    driver.find_element(By.CSS_SELECTOR, "#success_btn").click()

常见 expected_conditions

 
类型示例方法说明
element element_to_be_clickable()
visibility_of_element_located()
针对于元素,比如判断元素是否可以点击,或者元素是否可见
url url_contains() 针对于 url
title title_is() 针对于标题
frame frame_to_be_available_and_switch_to_it(locator) 针对于 frame
alert alert_is_present() 针对于弹窗

显式等待-封装等待条件

 
  • 官方的 excepted_conditions 不可能覆盖所有场景
  • 定制封装条件会更加灵活、可控

显式等待-封装等待条件

 
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support.wait import WebDriverWait


class TestWebdriverWait:

    driver = webdriver.Chrome()

    driver.maximize_window()
    driver.implicitly_wait(5)
    driver.get("https://vip.ceshiren.com/#/ui_study")
    def teardown(self):
        self.driver.quit()
    def test_webdriver_wait(self):
        # 解决的问题:有的按钮点击一次没有反应,可能要点击多次,比如企业微信的添加成员
        # 解决的方案:一直点击按钮,直到下个页面出现,封装成显式等待的一个条件
        def muliti_click(button_element,until_ele):
            # 函数封装
            def inner(driver):
                # 封装点击方法
                driver.find_element(By.XPATH,button_element).click()
                return driver.find_element(By.XPATH,until_ele)
            return inner
        time.sleep(5)
        # 在限制时间内会一直点击按钮,直到展示弹框
        WebDriverWait(self.driver,10).until(muliti_click("//*[text()='点击两次响应']","//*[text()='该弹框点击两次后才会弹出']"))
        time.sleep(5)

标签:webdriver,16,selenium,driver,高级,element,显式,import
From: https://www.cnblogs.com/csfsz/p/17934608.html

相关文章

  • 【Python高级应用课程设计 】大数据分析——银行客户认购产品预测
    一、选题背景随着大数据时代的到来,银行客户认购产品的预测分析变得越来越重要。在竞争激烈的市场环境中,银行需要更好地了解客户需求,提供更精准的产品推荐和服务,以提高客户满意度和忠诚度。同时,通过预测客户认购产品,银行可以更好地规划产品线和营销策略,提高业务效益和盈利能力......
  • 高级软件工程Advanced Software Engineering
    《高级软件工程》教学大纲Teaching(Course)OutlineofAdvancedSoftwareEngineering 第一部分 大纲说明1.课程代码:3290240012.课程类型:学科必修课3.开课时间:秋季学期,第3周—第20周4.课程目标:通过该课程的学习,培养学生掌握软件工程的基本原理、概念和技术方法,了解软件工程领域......
  • 在不使用内置函数和中间变量的情况交换数字LeetCode力扣题解面试题16.01
    #异或法#Kotlin```KotlinclassSolution{  funswapNumbers(numbers:IntArray):IntArray{    numbers[0]=numbers[0]xornumbers[1]    numbers[1]=numbers[1]xornumbers[0]    numbers[0]=numbers[0]xor......
  • 【Python高级应用课程设计 】大数据分析——中国时尚购物的动机
    选题背景:时尚购物在中国的消费市场中占据了重要地位,并且受到越来越多消费者的追捧。中国消费者在时尚购物方面的动机是什么,了解其背后的原因和驱动力对于了解中国市场、时尚行业的发展趋势以及消费者行为具有重要意义。本选题旨在探讨中国时尚购物的动机。时尚购物在中国的兴盛......
  • 16.兼容性测试
    概念:几个硬件之间、几个软件之间或是软硬件之间的相互配合程度app兼容性测试:移动设备型号多样测试APP在主流设备上能否正常运行测试APP在主流设备上崩溃卡顿现象兼容性测试作用:进一步提高产品的质量,提高用户体验尽可能达到平台无关性保证软件存在价值,是衡量软件质量的重要指标......
  • drf高级之——自定义全局异常处理
    自定义全局异常处理 drf异常处理交给exception_handler处理了,但是没处理非drf的异常'EXCEPTION_HANDLER':'rest_framework.views.exception_handler' 我们可以重写一个exception_handler方法,处理drf异常和自己的异常以后只要出现异常,都会走到它方式如下: 第一步:首先......
  • 黑马pink css8 高级
    精灵图使用核心总结:字体图标的优点和不足:利用边框构建三角形:鼠标样式:取消表单轮廓线:outline:0outline:none禁止更改文本框大小:resize:none实现图片(行内元素或行内块元素)和文本的垂直居中对齐:vertical-align:middle;解决图片底部默认空白缝隙的问题单行文本溢......
  • (转载)为什么UART串口通信要16倍过采样数据
    增强抗干扰是原因之一标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计. 标准UART的RXD前端有一个"1到0跳变检测器",当其连续接受到8个RXD上的地电平时,该检测器就认为RXD线出现了起始位,进入接受数据状态.在接受状态,接受控制器对数据位7,8,9三个脉冲采......
  • 嵌入式教学实验箱_数字信号处理实验箱_操作教程:5-16 灰度图像线性变换(LCD显示)
    一、实验目的学习灰度图像线性变换的原理,掌握图像的读取方法,并实现在LCD上显示线性变换前后的图像。二、实验原理图像线性变换一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。由于形成图像的系统亮度有限,常出现对比度不足的弊病,使人眼观看图像时视觉效果很......
  • 2024年1月广州/惠州/深圳软考高级信息系统项目管理师招生
    信息系统项目管理师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。信息系统项目管理师,属于软考三个级别中的“高级”。 【报考要求】 不设学历与资历条......