在新页面上使用Selenium WebDriver与Java查找WebElement



我正在尝试自动化一项功能,我必须打开一个新选项卡并开始在此页面上工作,但我的代码仍在最后一个选项卡上查找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。

我找到了解决方案,在页面中查找 Web 元素时遇到了问题,因此当我使用以下代码更改硒焦点时:

ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));

我使用按选项卡搜索了 Web 元素,我找到了它。

谢谢!

最新更新