1

Selenium フレームワーク (WebDriver、Java) で PageFactory モデルを使用しています。

テスト: アプリケーションでエンティティを作成し、完了するまで待ちます (エンティティの状態 (完了/処理中) を確認するには、作成されたエンティティの前でステータス イメージを確認する必要があります)。

問題/クエリ: * * 特定のステータスが処理中から完了に変わるのをどのように待つべきですか? (完了後にページ全体が更新されないため、その画像のみが更新されます – AJAX/JSON 呼び出し)

***PageFactory を使用して最新のページ オブジェクトを取得するにはどうすればよいですか? PageFactory.InitElements(driver, classname.class) を使用してみましたが、機能しません。

* *どうにかして、PageFactory Cache だけを更新することはできますか? 「BrowserPage.FlushCache()」を持つ SilkTest のように?

4

1 に答える 1

9

@FindBy アノテーションで定義された WebElements は実質的にプロキシです。WebElement でアクションを実行するたびに、@FindBy アノテーションのロケーターを使用して、ページ上のその要素を再度検索します。

PageFactory.InitElements(driver, classname.class) はこれらのプロキシを設定するだけで、実際に要素を見つけるわけではないので、何度も呼び出し続ける必要はありません。

@CacheLookup アノテーションを使用して個々の WebElement をキャッシュできます。これを使用すると、WebElement は最初に使用したときに遅延評価されますが、その時点から再度検索されることはありません (つまり、StaleElementExceptions を取得し始める可能性があります)。要素が変更された場合)。

最新情報は Selenium Wiki に保管されています。

http://code.google.com/p/selenium/wiki/PageFactory

于 2013-02-08T15:08:39.817 に答える