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

​​​​​​​

相关推荐
程序员三藏4 小时前
Selenium+python自动化测试:解决无法启动IE浏览器及报错问题
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
Warren985 小时前
软件测试-Selenium学习笔记
java·javascript·笔记·学习·selenium·测试工具·安全
zzc9217 小时前
Wireshark获取数据传输的码元速率
网络·测试工具·wifi·wireshark·路由器·802.11n·物理层参数
小丁爱养花9 小时前
接口性能测试工具 - JMeter
测试工具·jmeter
甄超锋1 天前
python sqlite3模块
jvm·数据库·python·测试工具·django·sqlite·flask
中草药z1 天前
【自动化测试】Selenium详解-WebUI自动化测试
前端·功能测试·selenium·自动化·html·web·测试
zzc9212 天前
TLSv1.2协议与TCP/UDP协议传输数据内容差异
网络·测试工具·安全·wireshark·ssl·密钥·tlsv1.2
Jinkxs2 天前
告别“测试滞后”:AI实时测试工具在敏捷开发中的落地经验
人工智能·测试工具·敏捷流程
秃了也弱了。3 天前
WireShark:非常好用的网络抓包工具
网络·测试工具·wireshark
敲上瘾3 天前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups