selenium之element常见属性、方法

Web Element的属性和方法

在selenium中,Web Element对象提供了许多属性和方法来和页面上的元素进行交互;比如下面几个

  • 属性
    • id,表示该元素的内部标识符
    • size,返回元素的宽度、高度;像素单位
    • rect,返回元素的宽高和坐标信息;
      • x,y;元素左上角相对于页面左上角的坐标
      • width、height;元素的宽度和高度
    • tag_name;返回元素的标签名称
    • text;返回元素的可见文本内容;包括子元素的文本
      • 如果元素是隐藏不可见的;可能返回空字符串
  • 方法
    • send_keys();输入框输入文本、模拟键盘操作
    • clear(),情况输入框或文本区域内容
    • click();单击元素
    • get_attribute();获取元素的HTML属性值(id、href、value等等)
    • is_selected();检查元素是否被选中;返回True、False
    • is_enabled();检查元素是否可交互;返回True、False
    • is_displayed();检查元素在页面上是否可见;返回True、False
    • value_of_css_property();获取元素css的属性值(color、font-size、display等)

上面就是常见的一些属性和方法了,当然还有一些其他的;就不一一展示了;需要自己私下去研究

下面废话不多说,开始操练起来

id
复制代码
element = browser.find_element(By.ID,'kw')
print(element.id)
# f.121AC56FA78A2FF7D42F1F24490E61E2.d.768EC4E5CE47215279360D8DBAC35389.e.6
# 获取元素的id属性
print(element.get_attribute('id')) # kw
size
复制代码
# 返回元素的宽高
element = browser.find_element(By.ID,'kw')
print(element.size) # {'height': 44, 'width': 550}
print(element.size['width']) # 550
rect
复制代码
# 返回元素的宽高和坐标信息
element = browser.find_element(By.ID,'kw')
print(element.rect) # {'height': 44, 'width': 550, 'x': 298, 'y': 294}
tag_name
复制代码
# 返回元素的标签名
element = browser.find_element(By.ID,'kw')
print(element.tag_name) # input
text
复制代码
# + text;返回元素的可见文本内容;包括子元素的文本
#     + 如果元素是隐藏不可见的;可能返回空字符串
element = browser.find_element(By.ID,'s-usersetting-top')
print(element.text) # 设置
send_keys()
复制代码
element = browser.find_element(By.ID, 'kw')
# 输入内容
element.send_keys('selenium')
time.sleep(3)
# 模拟回车操作
element.send_keys(Keys.ENTER)
time.sleep(3)
clear()
复制代码
# 清空输入框内容,再输入其它的
element.clear()
time.sleep(3)
element.send_keys('python')
time.sleep(3)
click()
复制代码
# 首先找到需要点击的元素
button = browser.find_element(By.ID,'su')
button.click()
time.sleep(3)
get_attribute()
复制代码
# 获取元素的属性值
button = browser.find_element(By.ID,'su')
print(button.get_attribute('value')) # 百度一下
is_selected()
复制代码
这里我为了演示方便,用了下面这个站点;可以看的更加清楚

url_demo = r'http://www.自动化测试.com/demo/checkbox'
browser.get(url_demo)
# 找到所有Input标签,遍历输出是否是被选中的状态
elements = browser.find_elements(By.TAG_NAME,'input')
for element in elements:
    print(element.is_selected())

"""
False
False
False
"""
# 对第二个进行勾选,其实就是点击一下那个小方块
elements[1].click()
# 再次遍历他们的状态
for element in elements:
    print(element.is_selected())
"""
False
True
False
"""
is_enabled()
复制代码
# is_enabled()检查元素是否可交互;返回True、False
url_demo = r'http://www.自动化测试.com/demo/checkbox'
browser.get(url_demo)
elements = browser.find_elements(By.TAG_NAME,'input')
for element in elements:
    print(element.is_enabled())
"""
True
True
True
"""
time.sleep(3)
# 这里我使用了js把第二个框给置灰不可选择了
browser.execute_script("arguments[0].disabled = true;", elements[1])
time.sleep(5)
# 发现第二个输出为False了
for element in elements:
    print(element.is_enabled())
"""
True
False
True
"""
is_displayed()
复制代码
#  + is_displayed();检查元素在页面上是否可见;返回True、False
browser.get("https://the-internet.herokuapp.com/dynamic_loading/1")
hidden_element = browser.find_element(By.ID, "finish")
print(hidden_element.is_displayed())  # False(初始状态)
browser.find_element(By.ID, "start").find_element(By.TAG_NAME, "button").click()
# # 等待元素显示后再次检查
time.sleep(10)
print(hidden_element.is_displayed())  # True
value_of_css_property()
复制代码
#   + value_of_css_property;获取元素css的属性值(color、font-size、display等)
url_demo = r'http://www.自动化测试.com/demo/button'
browser.get(url_demo)
elements = browser.find_elements(By.TAG_NAME, 'button')
print(elements[0].value_of_css_property('color')) # rgba(255, 255, 255, 1)

好了,Web Element的一些常用属性、方法就先介绍到这里了;剩下的一些可以私下自己练习练习

相关推荐
程序员小远3 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT10157974443 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏4 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
深蓝电商API4 天前
Selenium 5.0 全新架构解析:值得升级吗?
爬虫·selenium
专业机床数据采集4 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔4 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH4 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试4 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
LT10157974444 天前
2026年开源自动化测试工具选型指南:功能与适用场景解析
测试工具·开源·自动化