私はテストを作成するためにSelenium Java WebDriverを使用しています。私が自動化しようとしているテストは、次のとおりです: 1)CSS要素からURLを取得します。 2)その要素をクリックします(リンクです)。 3)開いているURLが期待どおりであることを確認します。Selenium Web Driverでリダイレクトする前にクリックされたURLが開かれていることを確認する方法はありますか?
開かれたURLが実際に手順1で取得したURLと同じ場合は、手順3は簡単です。ただし、最終的に開かれるまで私のケースのURLがリダイレクトされるため、テストケースが失敗します。
私の現在の実装:「私をクリックした後
public void click(String selector) {
driver.findElement(By.cssSelector(selector)).click();
}
3):
public String getHrefFromElement(String selector) {
return driver.findElement(By.cssSelector(selector)).getAttribute("href");
}
2)私は、セレクタ上でこのメソッドをクリックしてください: 1)この方法で私は、URLを取得します現在のURLを取得し、#1で取得したElementからHrefを現在のURLと比較するための基本アサーションを作成します(失敗する)。
public String getCurrentURL() {
return driver.getCurrentUrl();
}
質問: URLをクリックした場合は、リダイレクトされる、私は何とかリダイレクトURLは前にオープンされたことを確認することができますか? リダイレクト前のページが読み込まれる前に、最初からURL状態を取得できますか?
の例を取って私の答えを提示しているの下に、あなたは次のように試すことができます私が確認したいですリダイレクトする前ではなく、リダイレクトが完了した後ではありません。このコメントで提供された情報は非常に一般的なものなので、可能であれば詳細を教えてください。 – infimum
これを行う方法はありません.Seleniumは、ブラウザが通常そうするように動作します。サーバがリダイレクトヘッダで応答すると、中間ページをロードせずにリダイレクトに直接従います –