Я следую шаблону объекта страницы, предложенному Selenium, но как мне создать более специализированный WebElement для страницы. В частности, у нас есть таблицы на наших страницах, и я написал некоторые вспомогательные функции для получения определенных строк таблицы, возврата содержимого таблицы и т.д.
В настоящее время представлен фрагмент объекта страницы, который я создал, который имеет таблицу:
public class PermissionsPage {
@FindBy(id = "studyPermissionsTable")
private WebElement permissionTable;
@FindBy(id = "studyPermissionAddPermission")
private WebElement addPermissionButton;
...
}
Итак, что бы я хотел сделать, это иметь permissionsTable как более настраиваемый 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
}
}
Я надеюсь, что это имеет смысл, что я пытаюсь объяснить. Я предполагаю, что то, что я ищу, - это способ заставить этот пользовательский WebElement делать некоторые дополнительные материалы, относящиеся к таблице. Добавьте этот пользовательский элемент на страницу и воспользуйтесь тем, как Selenium прокладывает веб-элементы на странице на основе аннотаций.
Возможно ли это? И если да, то кто-нибудь знает, как это можно сделать?