在接口中声明一个页面的 Webelements 之后,在我们的完整项目中编写selenium自动化脚本时,很容易获得元素。请建议怎么做。我收到此错误"在创建界面时,空白的最终字段title_page可能尚未初始化" :
public interface PageElements {
@FindBy(css="h2")
public static WebElement title_page;
}
答案 0 :(得分:2)
你做错了什么。你不能在这样的接口中有这样的语句:
public static WebElement title_page;
未初始化title_page
。
一旦我们在接口中声明了一个页面的Webelements而不是它 在我们的完整项目中,很容易获得元素 selenium自动化脚本
您可以通过在逻辑上分割 页面并在Java中遵循继承模式来实现相同目的。
比如说,如果您自动化SO网站,那么您可以创建一个HeaderPage
,其中包含页面的标题中的所有元素。例如:
class HeaderPage{
@FindBy(css="any")
protected static WebElement review;
}
一旦你有了这个,你可以通过扩展HeaderPage
在其他标题页中重复它们。因为SO可以有一个名为SONavigationPage
的页面对象,它可以是这样的:
class SONavigationPage extends HeaderPage
{
//have access to review element.
}
这是重用元素的好方法;
答案 1 :(得分:0)
你需要这个
//initialised elements to use
PageFactory.initElements(driver, page);
请参阅此处以获取更多信息:https://code.google.com/p/selenium/wiki/PageFactory 希望这有帮助