因此,我遵循页面对象模型,并有一个类(A 类),其中包含特定页面的元素和功能。我还有一个使用 A 类的 Test 测试类。目前,我的页面至少有 222 个 Web 元素,因为该页面有许多组件需要填写以进行回归测试。正如您可以想象的,Page 对象有数百行代码,只有顶部的 Web 元素和底部的函数。我想知道如何分离这些网页元素,以便代码更清晰。
我看过 guru99 的文章,介绍如何将其放入 XML 中,但文章中的完成方式并不能解决我的问题,因为我仍然需要以某种方式初始化它们,或者使用“driver.find” (来自 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 并不是那么舒服。您可以向按钮或链接键入文本(发送键)。
有关它的更多信息:How to implement user types for @FindBy annotation .
您可以使用具有此类功能的现有库,例如 Html Elements framework
您可以使用具有页面对象概念的框架,例如 Selenide或Serenity framework
关于java - 如何将网页元素与页面对象文件分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437954/