私はかなり標準的な状況にあります。ボタンをクリックすると、プログレスバーなどのトランジションページが読み込まれ、そのページが次のページにリダイレクトされます。読み込みには時間がかかります。
遷移ページではなく、最終ページでアサーションを実行したいと思います。 Selenium IDEに、アサーションを実行する前に最後のページが読み込まれるまで待機するように指示するにはどうすればよいですか?
ありがとうございました。
簡単なアプローチは、その最後のページで「特定の」テキストを待つことです。詳細については、「waitForText」コマンドを参照してください。
Johnのアプローチに追加するには、Seleniumwaitメカニズムを使用して、最終ページの要素が次のように存在することを確認できます。
Java:
WebDriverWait wait = new WebDriverWait(webDriver, 10); // seconds
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("foo")));
ルビー:
wait = Selenium::WebDriver::Wait.new(timeout: 10) # seconds
wait.until { driver.find_element(id: "foo") }
これは、関連するリダイレクトに適切に従います。
Wait_for_pageを2回続けて呼び出すことができます。最初はリダイレクトを待ち、2番目は最後のページを待ちます。
ページタイトルが期待値になるまで待つこともできます。
$driver->wait()->until(WebDriverExpectedCondition::titleIs('New page title from redirect'));