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(),"孩子一读")]')

​​​​​​​

相关推荐
老神在在00115 小时前
JSON Schema
测试工具·json
小杍随笔18 小时前
【FlyEnv v4.15.0 重磅更新!新增 FrankenPHP、CliProxyAPI、Numa、Rnacos 模块,开发效率再升级】
测试工具·开发环境管理工具
软件测试慧姐19 小时前
软件测试常见面试题汇总(2026版)
软件测试·测试工具·面试
weixin_419658312 天前
基于 Trae 和 Postman-MCP-Server 接口自动化测试
测试工具·postman
weixin_419658312 天前
Postman-MCP-Server 的构建以及在 Trae 中的配置方法
测试工具·postman
测试员周周3 天前
【AI测试系统】第6篇:需求扔进去,3 分钟出测试用例?AI测试系统的 RAG 知识增强实战
人工智能·python·功能测试·测试工具·测试用例
测试员周周3 天前
【AI测试功能2】AI功能测试的“不可确定性“难题与应对思路:从精确断言到统计判定的完整方案
大数据·人工智能·python·功能测试·测试工具·单元测试·测试用例
测试员周周4 天前
【AI测试系统】第5篇:AI 编码工具抛硬币?我们用 LangGraph 做了个“确定性+AI”的测试系统(附自愈架构)
人工智能·python·功能测试·测试工具·架构·langchain·单元测试
弹简特4 天前
【精通Postman接口测试】02-集合变量|环境变量|全局变量,批量运行原来这么简单(附图文+CLI实战)
测试工具·接口测试·postman
DevilSeagull4 天前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc