当前位置: 首页 > 知识库问答 >
问题:

无法在新选项卡chrome-Selenium web driver with Java中找到元素

长孙兴德
2023-03-14

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

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"))

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

这是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个答案

萧英睿
2023-03-14

23:311;不是ID属性,它是data-alla-rented-by属性,而且它似乎是随机的,因此您无法真正中继它来定位元素。我建议您使用唯一的类名。lds-icon-uity-new-windows看起来很独特

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

或者几个类别属性的组合

driver.findElement(By.cssSelector(".slds-icon_container.slds-icon-utility-new-window"));
 类似资料:
  • 我从当前页面的链接中打开了一个新选项卡。选项卡打开了,但焦点没有转移到该选项卡上,我也无法使用以下两种方法切换选项卡。我在用铬。

  • 我无法在我的网站中找到选项卡元素。下面是tab元素的html代码: 它也不在任何iframe中。我尝试复制它的xpath,但没有成功。任何帮助都是值得的。 错误记录如下: 线程“main”组织中出现异常。openqa。硒。NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“//a[@id='tab-t0-2']”}(会话信息:chr

  • 我想使用Selenium WebDriver和Python在不同的选项卡中打开相当多的URL。 在我的代码中有什么可以改变的地方来让新的URL在new选项卡中打开吗? 谢谢你的帮助!

  • 如何在Chrome浏览器上切换到父选项卡到新选项卡并打开新URL? 我想在打开新选项卡后访问一个新的URL,所以我已经编写了如下代码,但我能够打开新选项卡,并且系统正在父窗口中打开第二个URL,而不是在第二个选项卡上?

  • 在我的Laravel项目中,当浏览器关闭按钮单击事件或浏览器的选项卡按钮关闭事件时,我需要给出一条警告消息。 仅当(ctrl-shift-R)刷新浏览器时,“您所做的更改可能不会保存。”将显示默认消息。否则什么也没有。 当重新加载页面“[Violation]将非被动事件侦听器添加到滚动阻止“touchstart”事件时,将返回此警告。将事件处理程序标记为“被动”以使页面更加响应。看见https:/

  • 我正在尝试在我的应用程序中设置Firebase云消息。我在Firebase控制台中创建了该项目(我创建了一个新项目,没有导入以前创建的gcm项目)。我能够成功地设置项目,并在应用程序中运行它,并从firebase控制台的“通知”选项卡接收示例通知。 当试图通过APIhttps://fcm.googleapis.com/fcm/send发送数据消息时,我得到了未经授权的(401)响应。原来我使用了g