java - 使用带有 Java 的 Selenium WebDriver 在新页面上查找 WebElement

标签 java selenium selenium-webdriver tabs

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

相关文章:

java - Selenium java 浏览器 session 重用

Selenium 网络驱动程序 : Open new tab instead of a new window

java - Selenium WebDriver 中的 URL Malformed 异常使用 Java 查找断开的链接

c# - 如何从 Selenium 访问 Chrome 开发者控制台

java - 通过 java 代码编译 C 源代码

java - 我在 Java 中做错了什么才得到这个 IllegalArgumentException ?

java - 通过 Selenium Chromedriver 自动授予对 Chrome 48 中视频和音频的访问权限

javascript - nodejs/selenium webdriver : Can't move mouse to a required position

java - 在 Jenkins 中部署 WAR 失败

java - Array.toString 返回内存地址,而不是实际值