单击应用程序中的菜单时,它会自动在新选项卡中打开该页面,然后在新选项卡中执行操作
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">
答案 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"));