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