【UI自动化测试】5_web自动化测试 _元素操作和元素信息获取

文章目录

  • 一、元素操作
    • [1.1 文件上传](#1.1 文件上传)
      • [1.1.1 <input>标签的上传](#1.1.1 标签的上传)
      • [1.1.2 非<input>标签的上传](#1.1.2 非标签的上传)
    • [1.2 模拟清除](#1.2 模拟清除)
    • [1.3 案例](#1.3 案例)
  • 二、元素信息获取
    • [2.1 获取元素信息的常用方法](#2.1 获取元素信息的常用方法)
    • [2.2 获取元素信息-案例](#2.2 获取元素信息-案例)

一、元素操作

python 复制代码
元素=driver.find_element()
  • 模拟点击:元素.click()
  • 模拟输入 :元素.send_keys(value)
  • 模拟清除 :元素.clear()
python 复制代码
元素.send.keys() 三种

- 发送文本内容
- 键盘按键及快捷键
- 上传文件

1.1 文件上传

1.1.1 标签的上传

1、标签的上传:直接通过send_keys即可完成文件上传

python 复制代码
element.send_keys("所要上传的文件的完整路径名")

1.1.2 非标签的上传

1、需要用到的工具

  • Autolt Windows lnfo 用于查看系统弹窗界面元素信息
  • SciTE Script Editor 用于编写Autolt脚本
  • compile script to.exe 用于将Autolt生成exe执行文件

2、操作步骤

  • 使用Autolt Windows Info查看要操作的控件属性信息
  • 脚本编写:
yacas 复制代码
controlFocus ("打开","", "Edit1")      #锁定控件
# 第一个参数:查看元素之后的title属性值
# 第二个参数:直接为空
# Edit1:control info 的 calss+instace

controlsetText("打开","", "Edit1", "文件完整路径名")   #在控件中输入完整路径
contro1c1ick("打开","", "Button1")                  #点击控件

3、调试脚本

  • 触发要上传文件控件
  • 在SciTE Script Editor 保存脚本,并点击Tools->Go,运行。
  • 查看上传是否成功
  • 使用Compile script to.exe转换成exe文件,64位
  • 在python脚本中使用os.system("生成的exe文件完整路径")

1.2 模拟清除

python 复制代码
element.clear()

1.3 案例

python 复制代码
from time import sleep
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

# 2、打开浏览器-创建浏览器驱动对象
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(10)

driver.get("file:///C:/Users/ggk/Desktop/web/%E6%B3%A8%E5%86%8CA.html")

# 1、在用户名输入框输入admin
driver.find_element(By.ID, "userA").send_keys("admin")
# 2、清除输入内容
sleep(2)
driver.find_element(By.ID, "userA").clear()

# 3、将D盘,注册A.html 上传到注册A
sleep(2)
driver.find_element(By.NAME, upfilea).send_keys("D:/注册A.html")
                    

# 暂停 2
sleep(5)
# 关闭驱动对象
driver.quit()

二、元素信息获取

yacas 复制代码
场景:执行商品搜索测试步骤后需要验证测试结果
观察:期望结果=?实际结果

2.1 获取元素信息的常用方法

①获取元素大小 :元素.size

②获取元素文本: 元素.text

③获取元素属性值 :元素.get_attribute('属性名')

python 复制代码
# 返回的结果都是Boolean数据:True or False

④判断元素是否可见 :元素.is_displayed() 
⑤判断元素是否可用 :元素.is_enabled()
⑥元素是否选中:    元素.is_selected()  


提示:
1. size、text:为属性,调用时无括号; 
   如:xxx.size
2、get_attribute("id") 获取元素属性值

2.2 获取元素信息-案例

python 复制代码
# 导包
from selenium import webdriver
from time import sleep

# 获取浏览器驱动对象
driver = webdriver.Chrome()
# 将浏览器 最大化
driver.maximize_window()
# 打开url
url = r"https://news.baidu.com/"
driver.get(url)

# 获取用户名文本框大小
size = driver.find_element_by_css_selector("#ww").size
print("用户名大小为:", size)
# 获取页面上第一个超文本连接内容
text = driver.find_elements_by_css_selector("a")[2].text
print("页面中第一个a标签为:", text)
# 获取页面上第一个超文本链接地址 get_attribute("href")
att = driver.find_elements_by_css_selector("a")[2].get_attribute("href")
print("页面中第一个a标签为href属性值为:", att)

# 判断 span元素是否可见
display = driver.find_element_by_css_selector("span").is_displayed()
print("span元素是否可见:", display)

# 判断 百度一下按钮是否可用
enabled = driver.find_element_by_css_selector("#s_btn_wr").is_enabled()
print("百度一下按钮是否可用:", enabled)
# 选中注册按钮
driver.find_element_by_css_selector("#passReg").click()

# 执行后退 --->
driver.back()
# 判断注册是否被选中
selected = driver.find_element_by_css_selector("#passReg").is_selected()
print("注册是否被选中:", selected)
# 暂停 2秒
sleep(2)
# 关闭驱动对象
driver.quit()

结果:

python 复制代码
用户名大小为: {'height': 25, 'width': 520}
页面中第一个a标签为: 注册
页面中第一个a标签为href属性值为: http://passport.baidu.com/v2/?reg&tpl=xw&regType=1&u=https%3A%2F%2Fnews.baidu.com%2F
span元素是否可见: True
百度一下按钮是否可用: True
注册是否被选中: False
相关推荐
斯班奇的好朋友阿法法几秒前
ollama离线导入大模型
服务器·前端·javascript
misty youth6 分钟前
pnpm build,发生了什么
前端·electron·pnpm·build
1024小神6 分钟前
kotlin安卓项目配置webview开启定位功能
前端
kyriewen14 分钟前
MutationObserver:DOM界的“卧底”,暗中观察每个风吹草动
前端·javascript·面试
踩着两条虫20 分钟前
VTJ.PRO 在线应用开发平台的开发者工具与代码质量
前端·vue.js·ai编程
TON_G-T28 分钟前
100行实现Mini React
前端·javascript·react.js
恋猫de小郭29 分钟前
2026 AI 时代下,Flutter 和 Dart 的机遇和未来发展,AI 一体化
android·前端·flutter
看客随心43 分钟前
vue + elementPlus大屏项目使用autofit做适配及注意点
前端·javascript·vue.js
网络点点滴1 小时前
Vue3 全局API转移到应用对象
前端·javascript·vue.js