文章目录
- 一、元素操作
-
- [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®Type=1&u=https%3A%2F%2Fnews.baidu.com%2F
span元素是否可见: True
百度一下按钮是否可用: True
注册是否被选中: False