У меня есть 2 класса, один расширяет другой, они перечислены ниже:
class TabledPage extends Page {
static content ={
table {$(By.xpath("//tbody"))}
headers {$(By.xpath("//thead"))}
}
Navigator gatAllRows(){
return table.children()
}
Navigator getRow(int index){
return table.children()[index]
}
Navigator getRow(String name){
return table.children().find{it.text()==name}
}
Navigator getColumn(Navigator row, int column){
return row.children()[column]
}
}
и этот класс, который расширяет вышеуказанный класс:
class somePage extends TabledPage{
static content ={
table(required: false){$(By.xpath("//table[contains(@class,'w-100 table-striped wi-table-hover')]//tbody"))} // I want this to overwrite the table def in TabledPage
}
}
Итак, в приложении, которое я тестирую, на большинстве страниц есть только 1 таблица, но в некоторых случаях есть 2 таблицы (одна скрыта в зависимости от размера экрана), поэтому я хочу иметь возможность переопределить определение таблицы в этом случае, чтобы указать на конкретная таблица, могу ли я сделать это без переопределения методов getRow или их также необходимо переопределить?
Просто чтобы привести пример того, как я это тоже называю:
at SomePage
getRow(0)
это работает, но он использует определение TabledPage таблицы Navigator вместо определения somePage, и мне интересно, есть ли способ заставить его использовать другое определение
TabledPage
, а с чем-то совершенно другим. - person erdi   schedule 24.08.2017