我正在使用 Selenium 和 Webdriver 来验证网页或 URL 是否存在某些元素,例如下拉框。
但是我已经看到,在登陆某个页面时,它会被重定向到另一个页面,并且在此之后还有一个重定向,在登陆最后一页之后,我可以验证该元素是否存在。
现在我的问题是如果我使用 webdriver 打开一个 URL,我如何计算在到达最终 URL 之前完成了多少重定向。
URL 上的重定向可以通过 301 或 302 响应代码、元刷新或 Javascript 重定向来实现。我可以找到一个检查但不确定它是否处理所有类型重定向计数的代码。
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 代码来做到这一点,并涵盖所有三种可能的重定向计数方式。如果没有,那么如何使用 Java 代码计算重定向次数。
谢谢