selenium入门篇(环境搭建、八大定位)

背景

Web自动化测现状

  1. 属于 E2E 测试
  2. 过去通过点点点
  3. 好的测试,还需要记录、调试网页的细节

一、selenium环境搭建

一键搭建

复制代码
pip3 install webdriver-helper

安装后自动的完成:

  1. 查看浏览器的版本号
  2. 查询操作系统的类型
  3. 根据 1 和 2 选择浏览器驱动版本
  4. 下载浏览器区别,放在指定的目录

检查是否搭建好

复制代码
from webdriver_helper import get_webdriver
driver = get_webdriver()  # 启动浏览器
driver.get("https://baidu.com")  # 控制浏览器
driver.quit()  # 关闭浏览器

二、元素定位

Selenium 提供了 8 个元素定位的 API ,可以分为三种:

  1. a 标签定位策略
  2. 属性定位策略
  3. 通用定位策略


使用方法是一样

复制代码
driver.find_element(By.ID, 'btn')

find_element 用来定位单个元素
find_elements 用来定位多个元素

1. a****标签定位策略

  • LINK_TEXT :精确匹配
  • PARTIAL_LINK_TEXT :模糊匹配
复制代码
driver.get("https://www.dangdang.com/") # 控制浏览器
# el = driver.find_element(By.LINK_TEXT, "登录") # 定位元素
el = driver.find_element(By.PARTIAL_LINK_TEXT, "登") # 定位元素
print(el.tag_name, el.text) # 打印元素的信息

2. 属性定位策略

ID

NAME

TAG_NAME

CLASS_NAME

都属于元素的属性

搜索框

复制代码
el = driver.find_element(By.TAG_NAME, "input")
print(el.tag_name, el.text)  # 打印元素的信息
el = driver.find_element(By.ID, "key_S")
print(el.tag_name, el.text)  # 打印元素的信息
el = driver.find_element(By.NAME, "key")
print(el.tag_name, el.text)  # 打印元素的信息

3. 通用定位策略

CSS:CSS语法,不够直观

XPath :直观的层级结构

对于大部分的定位策略,其底层,是使用CSS或者XPath实现

重点XPath

  1. XPath 是一种查询语言,支持逻辑表达式和函数
  2. 可以实现复杂元素的动态定位
  1. 可以用于 App 自动化测试的定位
    层级直观

    //*[@id="key_S"]
    /html/body/div[2]/div[3]/div/div[2]/form/input[1]
    /html/body/div/../form

三、xpath****语法详解

1. xpath层级

  • / (开头) 根路径

  • // 任一级

  • //div , 任意路径下的div元素

  • / (中间) 下一级

  • //div/p 任意路径下的div下的p

  • //div//p 任意路径下的div下的任意层级下的p

  • . 当前节点(同级)

  • .. 上一级

  • n 序号 表示同级元素的序号

  • @ 属性

    //input[@name="key"]

例子-登录页面:通过 a定位 b, b是 a的两个上级的下级(父子兄弟)

复制代码
//input[@type="password"]/../..//input

验证:如何验证 xpath是否正确-CSDN博客

2. xpath****的函数

函数是 XPath 另一个魅力,常用函数:

  • text : 精确匹配

    $x("//*[text()='孩子一读就懂的漫画儿童心理学(全5册)漫画小学生心理 为你自己读书 好习惯带来好成绩 儿童心理学情绪掌控漫画书 人际交往与性格培养绘本故事书籍​​​​​​​']")

  • contains :模糊匹配

    $x('//*[contains(text(),"一读就懂")]')

  • starts-with:开头一致

    $x('//*[starts-with(text(),"孩子一读")]')

​​​​​​​

相关推荐
ClouGence1 天前
Selenium、Playwright、CueCast 深度对比:Web 自动化测试工具怎么选
selenium·测试
程序员小远17 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT101579744417 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏17 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
深蓝电商API17 天前
Selenium 5.0 全新架构解析:值得升级吗?
爬虫·selenium
专业机床数据采集17 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔18 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH18 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试18 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos