我正在遵循Selenium建议的页面对象模式,但是如何为页面创建更专业的WebElement.具体来说,我们的页面上有表格,我编写了一些辅助函数来获取表格的特定行,返回表格的内容等.
目前,这是我创建的具有表的页面对象的片段:
public class PermissionsPage {
@FindBy(id = "studyPermissionsTable")
private WebElement permissionTable;
@FindBy(id = "studyPermissionAddPermission")
private WebElement addPermissionButton;
...
}
Run Code Online (Sandbox Code Playgroud)
所以,我想要做的是将权限表作为一个更加自定义的WebElement,其中包含我之前提到的一些方法.
例如:
public class TableWebElement extends WebElement {
WebElement table;
// a WebDriver needs to come into play here too I think
public List<Map<String, String>> getTableData() {
// code to do this
}
public int getTableSize() {
// code to do this
}
public WebElement getElementFromTable(String id) {
// code to do this
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这是有道理的,我正在努力解释.我想我正在寻找的是让这个自定义WebElement做一些特定于表的其他东西的方法.将此自定义元素添加到页面,并利用Selenium基于注释将webelements连接到页面的方式.
可能吗?如果是这样,有谁知道如何做到这一点?