0
私は2クラス1を持っているが、それらは以下のとおりです他の拡張:gebでクラスを拡張するときに、 "静的コンテンツ"ブロックのコンテンツを上書きできますか?
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つのテーブルがあります(1つは画面サイズによって隠されています)ので、この場合はテーブル定義を上書きして特定のテーブルを指し示すことができます。 getRowメソッドを使用するか、それらをオーバーライドする必要がありますか?
ちょうど私がこのalswellを呼び出しています方法の例を与える:
at SomePage
getRow(0)
これは動作しますが、それは代わりにsomePage定義のテーブルナビゲーターのTabledPage定義を使用し、方法がある場合、私は疑問に思って私は他の定義を使用するようにします
TabledModuleでテーブル定義を再定義して、さまざまなページすべてを扱うことができましたが、私が提案していることが可能であるかどうか不思議です。 – switch201
テーブルナビゲータのTabledPage定義somePage定義の代わりに?コンテンツオーバーライドが期待どおりに機能することを信じています。だから私は、あなたが観察したのは、 'TabledPage'の定義が使われているのではなく、まったく別のものであるからです。 – erdi
@erdiチャンスがあり、私が見つけたものをあなたに知らせるときに、これを再テストしようとします – switch201