新标签导航有时无法加载页面,为什么?

时间:2019-01-31 21:45:04

标签: java google-chrome selenium-webdriver

我的Java Selenium WebDriver脚本单击网页中的链接,该链接打开一个新选项卡并导航到外部站点。指向不同社交媒体的链接有多个。

我的问题是,有时新标签页会打开并尝试加载外部页面,但会同时停止。

我认为这没什么大不了的,我只是用我的代码刷新页面,就像在浏览器中手动刷新一样,它将尝试重新加载页面。我错了。

很明显,也许仅在Chrome中,Selenium甚至JavaScript附带的重新加载/刷新功能与单击刷新按钮的功能不同。在这种情况下,他们什么也不做。

幸运的是,这只会偶尔发生,但是确实会导致我的测试失败。

发生这种情况时,选项卡的标题区域显示为“无标题”,页面为空白白色,上面没有任何内容,所需的URL将出现在地址栏中。只有手动单击刷新按钮才能正确地重新加载页面。

我什至没有一次在Firefox中看到这种情况,所以我假设这只是Chrome中的问题。

有人知道如何解决此问题吗?

这是我在JavaScript中尝试过的内容:

document.location.reload(false);

document.location.reload(true);

我在Java Selenium中尝试了这些:

driver.navigate().refresh();

public Actions act = new Actions(driver);
act.keyDown(Keys.CONTROL).sendKeys(Keys.F5).keyUp(Keys.CONTROL).perform();

我还应该说,当页面正常工作时,这些刷新方法也可以正常工作。从字面上看,在这种情况下,他们不这样做,我也不知道该怎么办。没有办法以编程方式单击浏览器中的刷新按钮?我需要确定是否可以移动鼠标并单击。

1 个答案:

答案 0 :(得分:0)

可能是Chrome Web驱动程序问题。尝试更新到最新版本。

    driver = new ChromeDriver();
    driver.manage().window().maximize();

    baseUrl = "http://www.google.com/";
    driver.get(baseUrl);
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1)); //switches to new tab
    driver.get("https://www.facebook.com");

    driver.switchTo().window(tabs.get(0)); // switch back to main screen        
    driver.get("https://www.linkedin.com");