UI自动化之selenium

627 字
3 分钟
UI自动化之selenium

用例结果缩写#

  • .:passed,通过
  • F:failed,失败(用例执行时报错)
  • E:error,出错(fixture 执行报错)
  • s:skipped,跳过
  • X:xpassed,预期外的通过(不符合预期
  • x:xfailed,预期内的失败(符合预期)

入门案例:#

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
path = r"D:\Program Files\Python\chromedriver.exe"
ser= Service(executable_path=path)
driver = webdriver.Chrome(service=ser)
driver.get("https://www.baidu.com")
time.sleep(2)
driver.quit()

定位元素:#

1 标签

定位方式 id#

举例:<input type= "text" id= "name" />

定位方式 name#

举例:<input type= "text" name= "pwd" />

定位方式 class_name#

举例:<input class= "top" />

定位方式 标签tag_name(基本不用)#

举例:<input />

举例:<a>黑马程序员</a> driver.find_element(By.LINK_TEST,"登录").click()

举例:<a>学IT来黑马程序员,IT黑马</a>

2定位方式 CSS ⭐⭐⭐#

ID 选择器#
  • 适用条件:标签元素带有 ID 属性
  • 书写格式:value="#id属性值"

类选择器#
  • 适用条件:标签元素带有 class 属性
  • 书写格式:value=".class属性值"

元素选择器#
  • 书写格式:value="标签名"

属性选择器#
  • 属性定位: value="[属性名='属性值' (and 属性名1='属性值1' and 2='2')]"
    value="[属性名='属性值'][ 属性名1='属性值1' ] [2='2']"
  • 层级定位:如果使用 CSS 的时候,有复杂层级关系, value 值使用:标签名#ID 属性值 > 标签名 > 标签名.class 属性值 使用示例:
from selenium.webdriver.common.by import By
# ID选择器示例
driver.find_element(By.CSS_SELECTOR, "#username")
# 类选择器示例
driver.find_element(By.CSS_SELECTOR, ".login-input")
# 元素选择器示例
driver.find_element(By.CSS_SELECTOR, "input")
# 属性选择器示例
driver.find_element(By.CSS_SELECTOR, "[type='password']")

定位方式 XPath⭐⭐⭐#

针对 XML 格式;

1. 绝对路径#
  • 定义:从最外层元素到指定元素之间所有经过的元素层级的路径,层级关系依赖强,不建议使用
  • 写法:以 / 开头,从 html 根节点开始,使用 / 分隔元素层级
  • 示例:/html/body/div/fieldset/form/p[1]/input

2. 相对路径#

定义:从目标定位元素的任意层级的上级元素开始到目标元素所经过的层级的路径 写法:以 // 开始,后续每个层级都使用 / 来分隔 示例://p[3]/input 注意:[index]从 1 开始

3.相对路径+属性定位 ⭐⭐⭐#

原理:利用元素的属性来定位

  • 单属性语法:
    • 指定标签://标签名[@属性名="属性值"]
    • 任意标签 *//*[@属性名="属性值"]
  • 多属性联合语法:
    //*[@属性名1="属性值" and @属性名2="属性值"]

注意事项:标签名可以使用 * 来代替任意标签

4.相对路径+文本定位* ⭐⭐⭐#

//*[test()="登录"]

Frame 切换#

driver.switch_to.frame()

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
UI自动化之selenium
https://firefly.cuteleaf.cn/posts/编程学习/软件测试/ui自动化之selenium/
作者
伊月酱
发布于
2026-07-05
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Firefly
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
28
分类
10
标签
49
总字数
28,946
运行时长
0
最后活动
0 天前

文章目录