自动化测试过程中,部分场景下需要获取一个元素的属性,如元素的大小,id,name等,如何通过WebDriver或者这些信息呢?!
WebDriver提供了获取元素信息的方法,常用的如size,get_attribute()等。
size
size操作可以获取一个元素的尺寸,也就是宽度和高度。size属于一个元素的属性,直接通过点操作来获取。以获取百度搜索框尺寸为例,示例代码:
在上面代码,7和9行分别获取输入框、搜索按钮的尺寸。在8、10行出,打印了结果:
get_attribute
既然尺寸大小能够获取,那么是否可以获取更多属性信息呢?WebDriver为大家提供了功能更加强大的get_attribute方法,API函数:
# 获取元素属性
# name, 元素名称
# 返回值,属性name的值
get_attribute(self, name)
IDE提示展示:
获取百度搜索输入框、按钮的id属性,可以用如下代码:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
input_sz = driver.find_element_by_xpath("//input[@id='kw']").get_attribute("id")
print(input_sz)
btn_sz = driver.find_element_by_xpath("//input[@id='su']").get_attribute("id")
print(btn_sz)
driver.quit()
运行上面的代码,结果:
可以看到,通过get_attribute返回某个属性的值!
最后
获取元素属性能够帮助我们在自动化测试的过程中获取、检测元素的属性和变化,如果自动化测试遇到了问题,就可以通过获取元素的信息来看看是否有什么变化,有利于排查问题!