单击应用程序中的菜单时,它会在新选项卡中自动打开该页面,然后在新选项卡中执行操作
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 回答
23:311;a
不是ID属性,它data-aura-rendered-by
属性,它似乎是随机的,所以你不能真正中继,以找到该元素 . 我建议你使用独特的类名 .lds-icon-utility-new-window
似乎足够独特或者几个类属性的组合