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

时间:2017-03-07 12:29:17

标签: java selenium selenium-webdriver selenium-chromedriver

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

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 :(得分: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"));