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

Selenium(Java)消息“无法定位元素”,但元素和xpath存在

佴英奕
2023-03-14

我是Selenium WebDriver的新手,使用NetBeans java和Firebug for Firefox获取XPath。问题是,即使某些元素在浏览器中是可见的和可点击的,并且firebug找到了xpath,我仍然得到一个错误“无法定位元素”。问题是,元素不在框架中(没有框架),不在另一个窗口中,它是可见的,可点击的,并且它有清晰的XPath。我用了Wait和thread.sleep,都没用。此外,尝试了所有我能在Stackoverflow上找到的与此类似的解决方案。元素位于表的内部,该表内部有一些“div”元素。这是XPath:

.//*[@id='NavigationRadPanelBar_i2_i0_trvStandardView']/ul/li[3]/div/span[3]

似乎面板是一个问题,因为它不能定位面板也。我尝试了同一面板中的另一个元素,该元素具有标题和文本,如下所示:

driver.findElement(By.xpath("//*[contains(text(),'Technical Attributes')]")).click();   
    driver.findElement(By.xpath(".//*[@id='NavigationRadPane']")).click();
<div id="RAD_SLIDING_PANE_CONTENT_navigatiionRadSlidingPane" class="rspSlideContent" style="overflow: hidden; width: 200px; height: 579px;">
  <div id="NavigationRadPanelBarPanel" style="display: block;">
    <div id="NavigationRadPanelBar" class="RadPanelBar RadPanelBar_Office2007" postback="false" style="background-color:GhostWhite;height:100%;width:100%;">
      <ul class="rpRootGroup">
        <li class="rpItem rpFirst">
          <li class="rpItem">
            <li class="rpItem rpLast">
              <a class="rpLink rpExpandable rpExpanded" href="#">
                <div class="rpSlide" style="display:block;">
                  <ul class="rpGroup rpLevel1 111460" style="display: block; height: 274.731px; width: 100%;">
                    <li class="rpItem rpFirst rpLast">
                      <div class="rpTemplate">
                        <div id="NavigationRadPanelBar_i2_i0_trvStandardView" class="RadTreeView RadTreeView_Office2007">
                          <ul class="rtUL rtLines">
                            <li class="rtLI rtFirst">
                              <li class="rtLI">
                                <li class="rtLI">
                                  <div class="rtMid">
                                    <span class="rtSp" />
                                    <span class="rtPlus rtPlusHover" />
                                    <img class="rtImg" src="..." alt="Technical Attributes" />
                                    <span class="rtIn" title="Technical Attributes">Technical Attributes</span>
                                  </div>
                                  <ul class="rtUL" style="display:none;">
                                </li>
                                <li class="rtLI rtLast">

共有1个答案

司马自明
2023-03-14
driver.switchTo().activeElement();

这样驱动程序就会切换到你点击的面板。然后可以在面板中执行所需的其余操作。

 类似资料:
  • 我试图引用并单击网页上的元素。 我们应该能够使用简单的XPath进行引用。例如 然而,这似乎并不奏效。 我使用的chrome扩展表示该元素不存在。 我的代码找不到元素。 下面是我使用Selenium web驱动程序的Java代码。 以下是错误: 太奇怪了!关于为什么我不能引用元素,或者为什么xPath不exist的任何想法。

  • 下面是selenium找不到元素的代码。 但不知何故,它失败了,对我不起作用。它总是给我以下例外情况:过时的元素引用:元素未附加到页面文档 添加了--GetElementStextList的代码 感谢任何帮助。谢谢

  • 嗨,我是一个相当新的硒。可以有人请建议如何定位和元素在iframe asi是得到错误下面。 带有Iframe标记的DOM按钮元素的屏幕截图 以前编写的代码

  • 你知道为什么吗?

  • 我试图通过selenium单击save按钮,但是,我得到的错误是它无法定位元素。 这是网站的html部分 这是我得到的错误: NoSuchelementException:没有这样的元素:找不到元素:{“method”:“id”,“selector”:“divflashviewermain_savepdfbuttonicon”} (会话信息:chrome=74.0.3729.169)(驱动程序信息