テストを自動化するために、webdriverでgebを使い始めたところです。 私が理解しているように、ページにコンテンツを定義するときは、コンテンツ定義を呼び出すたびにページ要素を検索する必要があります。
//In the content block of SomeModule, which is part of a moduleList on the page:
itemLoaded {
waitFor{ !loading.displayed }
}
loading { $('.loading') }
//in the page definition
moduleItems {index -> moduleList SomeModule, $("#module-list > .item"), index}
//in a test on this page
def item = moduleItems(someIndex)
assert item.itemLoaded
$('.loading')
したがって、このコードでは、モジュールの基本要素のコンテキスト内で、セレクターによってページ上の要素を見つけるために、繰り返し呼び出される必要があると思います。ただし、この時点でStaleElementReference例外が発生することがあります。私の知る限り、要素はページから削除されませんが、削除されたとしても、$
バックグラウンドでキャッシュを実行しない限り、この例外は発生しませんが、その場合は、あらゆる種類のその他の問題。
誰かがここで何が起こっているのか理解するのを手伝ってもらえますか?要素の検索中にStaleElementReferenceExceptionが発生する可能性があるのはなぜですか?関連するドキュメントまたはgebソースコードへのポインタも役立ちます。