我正在尝试自动化一个功能,我必须打开一个新的选项卡并开始在这个页面上工作,但我的代码仍然在最后一个选项卡上查找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();
}
这是怎么回事,我该怎么解决这个问题呢?
发布于 2018-08-28 03:42:07
我找到了解决方案,在我的页面中查找Web元素时遇到了问题,所以当我使用以下代码更改selenium焦点时:
ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));
我使用Tab键搜索Web元素,我找到了它。
谢谢!
发布于 2018-08-24 12:36:01
第一次,你在第一个选项卡上有焦点驱动程序,它在0索引上,你已经关闭了它。关闭它后,1索引变为0索引,但您在1索引上调用了它。
您可以参考示例:
ArrayList<String> tabs= new ArrayList<String>(driver.getWindowHandles());
js.executeScript("window.open()");
driver.switchTo().window(tabs.get(1));
在这里,按此行,将通过保留当前选项卡打开新建选项卡。驱动程序将为Tab-1调用。
https://stackoverflow.com/questions/51986962
复制相似问题