首页 文章

无法在新标签chrome中找到元素 - Selenium Webdriver with java

提问于
浏览
0

单击应用程序中的菜单时,它会在新选项卡中自动打开该页面,然后在新选项卡中执行操作

String mainWindow = driver.getWindowHandle();

//when click the below its opened in new tab
driver.findElement(By.cssSelector("span.slds-align-middle")).click();
Set<String> handles = driver.getWindowHandles();
for (String handle : handles) {
    if (!handle.equals(mainWindow)) {
        driver.switchTo().window(handle);
        break;
    }
}

driver.findElement(By.id("23:311;a")).click();

切换到新窗口后无法找到该元素

driver.findElement(By.id("23:311;a"))

如何单击新打开的选项卡中的元素?

HTML:这是salesforce应用程序

<span class="slds-icon_container slds-icon-utility-new-window slds-m-left--x-small focus-icon" data-aura-rendered-by="54:375;a">

1 回答

  • 0

    23:311;a 不是ID属性,它 data-aura-rendered-by 属性,它似乎是随机的,所以你不能真正中继,以找到该元素 . 我建议你使用独特的类名 . lds-icon-utility-new-window 似乎足够独特

    driver.findElement(By.className("lds-icon-utility-new-window"));
    

    或者几个类属性的组合

    driver.findElement(By.cssSelector(".slds-icon_container.slds-icon-utility-new-window"));
    

相关问题