0

我正在准备 testFramework 并想知道将所有 Findby 对象保留在 PageClasses 中是否是个好主意,例如:

我有 PageClasses:

public class MainPage extends BaseExtendablePage implements Dataaa {

@FindBy(xpath = photo1) WebElement photo1;
@FindBy(xpath = "//p/i/a/img[@src= 'http://demoqa.com/wp-content/uploads/2014/08/pattern-14-300x237.png']") WebElement photo2;
@FindBy(xpath = "//div/i/a/img[@src= 'http://demoqa.com/wp-content/uploads/2014/08/pattern-14-300x237.png']") WebElement photo3;
...

我尝试了一些类似实现接口 Dataaa 并至少从 xpath's, id's... 中放入 String 的方法:

public interface Dataaa {

String photo1 = "//p/a/img[@src= 'http://demoqa.com/wpcontent/uploads/2014/08/pattern-14-300x237.png']";
}

这是保留这些元素或如何将它们移动到其他位置的好方法还是有更好的主意?

4

1 回答 1

0

在我们的项目中,我们将元素保留在它所属的 PageObject 中。如果有更多页面使用的元素,那么我们尝试通过共同的父母来分享它们。

如果您想单独存储字符串/定位器,您可以创建一个常量类并将它们存储为常量:

public class Const {

    private Const() {}

    public static final String PHOTO1 = "//p/a/img[@src= 'http://demoqa.com/wpcontent/uploads/2014/08/pattern-14-300x237.png']";
    public static final String PHOTO2 = "//p/i/a/img[@src= 'http://demoqa.com/wp-content/uploads/2014/08/pattern-14-300x237.png']";
...
}

请记住 Java 约定:常量应该用大写字母定义。

于 2018-03-15T12:29:43.550 回答