一旦我们在接口中声明了一页的Webelements,那么在整个项目中到处都可以很容易地获得用于编写硒自动化脚本的元素。请提出建议。创建界面时出现以下错误“空白的最终字段title_page可能尚未初始化”:

public interface PageElements {

    @FindBy(css="h2")
    public static WebElement title_page;
}

最佳答案

你的所作所为是错误的。在这样的接口中不能有这样的语句:

public static WebElement title_page;


没有初始化的title_page


  一旦我们在接口中声明一页的Webelements,它将比
  在我们整个项目中易于获取元素以进行编写
  硒自动化脚本


您可以通过逻辑上拆分页面并遵循Java中的继承模式来实现相同目的。

举例来说,如果您是自动化的SO网站,则可以创建一个HeaderPage,该元素的所有元素均在页面标题中。例:

class HeaderPage{

    @FindBy(css="any")
    protected static WebElement review;

}


一旦有了它,就可以通过扩展HeaderPage在其他标题页中重复使用它们。因此,SO可以有一个名为SONavigationPage的页面对象,它可以像这样:

class SONavigationPage extends HeaderPage
{
     //have access to review element.
}


这是重用元素的好方法。

08-16 22:46