【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
相关推荐
lyyl啊辉2 小时前
2. Vue数据双向绑定
前端·vue.js
CappuccinoRose3 小时前
CSS 语法学习文档(十七)
前端·css·学习·布局·houdini·瀑布流布局·csspaintingapi
keyborad pianist3 小时前
Web开发 Day1
开发语言·前端·css·vue.js·前端框架
Never_Satisfied4 小时前
在HTML & CSS中,可能导致父元素无法根据子元素的尺寸自动调整大小的情况
前端·css·html
We་ct4 小时前
LeetCode 101. 对称二叉树:两种解法(递归+迭代)详解
前端·算法·leetcode·链表·typescript
码云数智-大飞4 小时前
微前端架构落地实战:qiankun vs Module Federation 2026 深度对比与选型指南
前端·架构
IT枫斗者4 小时前
MyBatis批量插入性能优化:从5分钟到3秒的工程化实践
前端·vue.js·mysql·mongodb·性能优化·mybatis
前端 贾公子4 小时前
深入理解 Vue3 的 v-model 及自定义指令的实现原理(中)
前端·html
Never_Satisfied5 小时前
在HTML & CSS中,img标签固定宽度时,img和图片保持比例缩放
前端·css·html