找到的重定向网址不是使用java中的selenium webdriver的最终页面

时间:2014-01-23 07:47:53

标签: java selenium selenium-webdriver

我有一个如下所示的html页面:

..                                                                                                      

使用myPass

登录 ..

在Java中使用selenium webdriver,我尝试了以下内容:

WebDriver driver = new HtmlUnitDriver();

    String url = "http://www.pic.net.sh/index.html";
    // And now use this to visit Google
    driver.get(url);

    //driver.click("xpath=//a[contains(@href,'listDetails.do')
    //driver.findElement(By.xpath("//div[@class='quickActionHolderInfo loginAccountPass']/a[contains(text(), 'Login')]")).click();

    driver.findElement(By.xpath("//div[@class='span12 quickActionHolder']/a[@href='/organisation/pass/login']")).click();

但是这个页面会重定向到另一个页面,然后当我尝试下面找到最终重定向的URL时

System.out.println("Page title is: " + driver.getCurrentUrl());

点击链接后会显示当前页面的网址,但不是最后一页。

我是否遗漏了任何内容,或者我的代码是否足以在重定向延迟后处理页面的重定向?我已经在这里讨论了它,但无济于事,如果有人能指出我类似的问题,我将非常感激。

1 个答案:

答案 0 :(得分:-1)

通常由于对新网址的延迟调用而发生。有多种方法可以解决这个问题:

  • 尝试在最后一页上等待一些元素,然后执行getCurrentUrl()。
  • 另一种方法是应用while循环直到当前URL更改。

我使用以下代码进行测试:

int i=0;
do{
    try {
    Thread.sleep(200);
    } catch (InterruptedException e) {
    }
    i++;
} while(driver.getCurrentUrl().equals("http://www.pic.net.sh/index.html")&&i<10);

无论哪种方式都应该有效。