Selenium核心技巧:元素定位与等待策略

Selenium核心技巧

  1. WebDriver:浏览器(交互)
  2. find_element:元素定位
  3. WebElement元素(交互)

重点内容:

  1. 元素定位
  2. 等待
  3. 元素交互
    1. 文件上传(3种)
    2. 滚动条处理
    3. JS代码(强制操作)

1、元素定位

  • 方法

    • find_element:如果成功返回元素,如果失败抛出异常。
    • find_elements:如果成功返回list,如果失败返回list(空)
  • 策略
    *

    复制代码
    基于元素的属性进行定位
    ID = "id"
    NAME = "name" 
    TAG_NAME = "tag name" 
    CLASS_NAME = "class name"
    
    基于链接文件进行定位
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    
    可以定位任意元素
    XPATH = "xpath"
    CSS_SELECTOR = "css selector"

2、等待

  • 隐式等待
    *

    复制代码
    driver = webdriver.Edge(options=options, service=service)
    driver.implicitly_wait(20)     #隐式等待(放在浏览器启动之后,等待浏览器加载完成)
  • 显示等待
    *

    复制代码
    #显示等待(一般放在需要等待的上一个执行代码段)
    # WebDriverWait(driver,timeout=10).until(lambda x: driver.find_element(By.XPATH, value='//*[@id="s-top-left"]/a[1]'))
    
    wait=WebDriverWait(driver, 10)
    wait.until(lambda d: 1==1)   #等待条件
    
    #el=driver.find_element(by='xpath', value='//*[@id="s-top-left"]/a[1]')
    el=driver.find_element(By.XPATH, value='//*[@id="s-top-left"]/a[1]')
  • 流畅等待(更高级的等待)

  • 强制等待(休眠)
    *

    复制代码
    #强制等待
    import time
    time.sleep(3)
相关推荐
安冬的码畜日常12 小时前
【JUnit实战3_01】第一章:JUnit 起步
测试工具·junit·单元测试
测试老哥17 小时前
测试用例之正交试验法、功能图法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
newxtc19 小时前
【 广州产权交易所-注册安全分析报告-无验证方式导致安全隐患】
开发语言·人工智能·selenium·安全·yolo
zhonghaoxincekj20 小时前
晶体管的定义,晶体管测量参数和参数测量仪器
功能测试·单片机·学习·测试工具·单元测试·制造
Turnsole_y1 天前
pycharm自动化测试初始化
python·selenium
川石课堂软件测试2 天前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
卓码软件测评2 天前
第三方媒体流压力测试:k6插件xk6-webrtc的使用来测试媒体流的性能
网络协议·测试工具·http·https·webrtc·ssl·媒体
程序员三藏2 天前
银行测试:第三方支付平台业务流,功能/性能/安全测试方法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·安全性测试
废弃的小码农2 天前
测试基础--Day01--软件测试基础理论
python·功能测试·测试工具
胜天半月子2 天前
接口测试 | Postman的安装和测试使用
测试工具·接口测试·postman