📅  最后修改于: 2023-12-03 15:13:11.656000             🧑  作者: Mango
Selenium是一个浏览器自动化测试工具,常用于Web界面自动化测试。其提供了一系列的API方法,其中就包括了“元素查找”方法,也就是所谓的“find”方法。
在Selenium中,可以使用find_element_by_XXX()方法和find_elements_by_XXX()方法来查找元素。其中,find_element_by_XXX()方法返回的是单个元素,而find_elements_by_XXX()方法返回的是元素列表。
@findby
注解@findby
注解是一个Selenium的扩展,其主要目的是为了提高测试脚本的可读性和可维护性。使用@findby
注解可以将查找元素的代码与测试脚本代码分开,并且可以将查找元素的代码封装在一个方法中,方便在多个测试脚本中进行调用。
使用@findby
注解需要先导入from selenium.webdriver.common.by import By
,然后在需要查找元素的类或方法上添加注解并传入查找元素的方式和元素定位器。
from selenium.webdriver.common.by import By
class LoginPage:
# 使用@findby注解
@findby(how=By.ID, using='username')
def username_input(self):
pass
@findby(how=By.ID, using='password')
def password_input(self):
pass
@findby(how=By.XPATH, using='//button[text()="Login"]')
def login_button(self):
pass
上面的示例中,我们创建了一个名为LoginPage
的类,并在类中使用@findby
注解分别定义了三个查找元素的方法,分别对应了用户名、密码和登录按钮三个元素。在注解中,我们使用了ID和XPATH两种方式进行定位。
@findby
注解有两个必要的参数:
how
:查找元素的方式,可选值包括:By.ID、By.NAME、By.XPATH、By.CLASS_NAME、By.TAG_NAME、By.LINK_TEXT、By.PARTIAL_LINK_TEXT。using
:元素定位器,可以是ID、名称、XPATH路径或其他定位方式的表达式。@findby
注解还可以添加一个可选的参数:
wait_time
:查找元素的超时时间,单位为秒,默认值为10秒。使用@findby
注解可以将元素查找的代码与测试脚本代码分离开来,提高了代码的可读性和可维护性。在实际的测试中,我们可以根据需求选择合适的查找元素的方式和元素定位方式。