WebElement element = driver.findElement(By.id("xyz"));
上面的行将把元素对象存储在element
多变的。您当然可以将此元素传递给其他函数以在那里使用它。
我们一般遵循页面对象设计模式 https://www.selenium.dev/documentation/test_practices/encouraged/page_object_models/我们将页面的所有对象创建为类的成员并立即实例化它们。这样我们就可以在项目中的任何地方使用它们。例如,登录页面中的所有对象都将在名为的类中创建为公共静态变量LoginPage
。的构造函数LoginPage
类将查找元素并存储它们。
下次你想在任何地方访问某个对象时LoginPage
,我们按如下方式访问它们(假设您已经创建了元素userName
and submit
)...
LoginPage.userName.sendKeys("buddha");
LoginPage.submit.click();
然而,正如 Robbie 提到的,在页面刷新后,使用先前创建的对象有可能无法访问这些对象。您可以使用以下修改后的方法来确保始终找到这些对象。
而不是将对象创建为成员变量, 创建一个获取方法对于您可能需要使用的每个对象。
class LoginPage
{
public static WebElement getUserName()
{
return driver.findElement(By.id("xyz"));
}
}
Once LoginPage
就是这样定义的,下次你想使用的时候userName
,您可以使用以下语法。这样您就不必为需要使用这些对象的函数提供定位器。
LoginPage.getUserName().sendKeys("buddha");
通过使用这种方法,您可以确保对象始终可访问。