我正在尝试自动化一项功能,我必须打开一个新选项卡并开始在此页面上工作,但我的代码仍在查看最后一个选项卡上的 WebElements。我尝试使用以下代码切换选项卡,但它不起作用。
public void DataManager() throws InterruptedException {
ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(0));
driver.close();
driver.switchTo().window(tabs2.get(1));
WebElement tes = driver.findElement(By.xpath("//*[@id=\"lui-popover-3\"]/div/ng-transclude/ul/li[2]/button[1]/span[2]"));
tes.click();
}
这是怎么回事,我该如何解决?
最佳答案
第一次,您在索引为 0 的第一个选项卡上有焦点驱动程序,您已将其关闭。关闭它后,您的 1 索引变为 0 索引,但您已在 1 索引上调用它。
您可以引用示例:
ArrayList<String> tabs= new ArrayList<String>(driver.getWindowHandles());
js.executeScript("window.open()");
driver.switchTo().window(tabs.get(1));
在这里,通过这行,新标签将通过保持当前标签打开。驱动程序将为 Tab-1 调用。
关于java - 使用带有 Java 的 Selenium WebDriver 在新页面上查找 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51986962/