所以我按照页面对象模型,有一个类(A类),它有特定页面的元素和功能。我还有一个使用A类的Test测试类,目前我的Page至少有222个Web元素,因为这个页面有很多组件需要填写,用于回归测试。你可以想象,Page对象有数百行代码,上面只有Web元素,下面是函数。我想知道如何才能把这些web元素分离出来,这样代码才能更干净。
我在guru99的文章中看到了如何把它放在XML中,但是文章中的做法并不能解决我的问题,因为我仍然需要以某种方式初始化它们,或者到处都是'driver.find(locator from XML)',所以代码仍然会很乱。
页面对象类A
public class PageA extends BasePage{
@FindBy(xpath="//*[some xpath]")
WebElement inputField1
@FindBy(xpath="//*[some xpath]")
WebElement inputField2
@FindBy(xpath="//*[some xpath]")
WebElement inputField3
public PageA(Webdriver driver){
super(driver);
}
public void method1(){
//do something
}
}
我希望能够在其他地方初始化222个Web元素,这样代码会更干净。
更好的想法是创建你自己的元素,如 按钮, 鏈接, 输入、等。
而不是一般的 WebElement
. 它不是那么舒服的工作,所以一般的Web元素API。你可以输入文本(发送键)到按钮或链接。
更多关于它的信息。如何实现@FindBy注解的用户类型。.
你可以使用现有的库来实现这样的功能,如 Html Elements框架