Selenium と Webdriver を使用して、Web ページまたは URL にドロップダウン ボックスなどの特定の要素が存在することを確認しています。
ただし、特定のページにランディングすると、別のページにリダイレクトされ、この後にもう 1 回リダイレクトされ、この最終ページにランディングした後、要素が存在するかどうかを確認できることがわかりました。
今私の質問は、webdriver を使用して 1 つの URL を開いた場合、最終的な URL に到達する前に行われたリダイレクトの数をどのようにカウントするかです。
URL のリダイレクトは、301 または 302 応答コード、メタ リフレッシュ、または Javascript リダイレクトによって実装できます。チェックするコードを 1 つ見つけることができましたが、すべての種類のリダイレクトのカウントを処理するかどうかはわかりません。
HttpURLConnection con = (HttpURLConnection)(new URL( myURL ).openConnection());
((HttpURLConnection) con).setInstanceFollowRedirects( false );
con.connect();
int responseCode = ((HttpURLConnection) con).getResponseCode();
System.out.println("Original Url"+""+ myURL+responseCode);
int numberHops =0;
while (responseCode!=200)
{
String newUrl = con.getHeaderField("Location");
HttpURLConnection conn = (HttpURLConnection) new URL(newUrl).openConnection();
con.setInstanceFollowRedirects( false );
responseCode = conn.getResponseCode();
//System.out.println(newUrl + responseCode);
numberHops++;
System.out.println("location is" + newUrl);
System.out.println("number of Hoops before Reaching " +conn.getURL()+"is"+numberHops );
if(numberHops >2)
break;
}
また、これは Java コードです。webdriver コードを使用してこれを行う方法はありますか?リダイレクトをカウントする 3 つの可能な方法すべてをカバーします。そうでない場合、Java コードを使用してリダイレクトの数をカウントする方法。
ありがとう