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

​​​​​​​

相关推荐
集成显卡9 小时前
PlayWright | 初识微软出品的 WEB 应用自动化测试框架
前端·chrome·测试工具·microsoft·自动化·edge浏览器
互联网杂货铺10 小时前
完美搭建appium自动化环境
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
测试老哥16 小时前
Jmeter如何进行多服务器远程测试?
自动化测试·软件测试·功能测试·测试工具·jmeter·测试用例·性能测试
鱼鱼说测试18 小时前
postman基础
测试工具·postman
程序员杰哥21 小时前
Postman常见问题及解决方法
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
小堃学编程1 天前
Selenium常用函数介绍
selenium·测试工具
羊米奇1 天前
selenium-自动更新谷歌浏览器驱动
selenium·谷歌浏览器驱动更新
2501_915373881 天前
Selenium 和playwright 使用场景优缺点对比
selenium·测试工具
笑口常开的小丸子1 天前
Selenium 中 JavaScript 点击的优势及使用场景
javascript·selenium·测试工具