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

OpenQA。selenium . NoSuchElementException:“找不到元素”

卫深
2023-03-14

我正在尝试使用页面xpath查找并单击元素。当我单击特定元素并使用 firebug 检查它时,即使 firebug 能够同时找到相对路径和绝对路径,路径也从不起作用,并且似乎找不到?

IWebDriver driver = new FirefoxDriver();
   driver.FindElement(By.XPath(
            "html/body/div[5]/div/div[103]/div[2]/div/div[1]/div[5]/div/div[3]/div[2]/div/img[2]")).Click();

这是火虫识别的相对路径

  .//*[@id='16']/div[2]/div/div[1]/div[5]/div/div[3]/div[2]/div/img[2]


  <img class="Qv_CellIcon_right Qv_ULC" alt="" style="cursor: pointer; max-width: 202px; max-height: 16px;" src="/QvAjaxZfc/QvsViewClient.aspx?datamode=binary&name=ULC&host=QVS%40fuzionpulse-tst&slot=&public=only&xrfkey=nX73wyD2jq281aHj"/>

共有1个答案

颜高格
2023-03-14

极其冗长的 XPath 存在被定位的风险,因为 HTML 必须如此精确地构建才能“匹配”。

查看您提供的示例XPath/HTML,我看到<code>中位于父元素中的<code>id

//*[@id='16']//img[@class='Qv_CellIcon_right Qv_ULC']

解释:

  • //*[@id='16'] - 选择第一个匹配的节点,其中 id 等于'16'
  • //img[@class='Qv_CellIcon_right Qv_ULC'] - 选择第一个匹配

 类似资料:
  • 我已经写了下面的代码来选择单选按钮,它的工作很好,但今天它不工作了。请找到代码和相应的错误消息 代码1: 错误1:“线程”main“org.openqa.selenium.TimeoutException中出现异常:等待存在由:By.id:0_2485a_startdate定位的元素10秒后超时” 代码2: 错误2:“线程”main“org.openqa.selenium.TimeoutExcep

  • 我有一个输入框,就像我在这里用来输入我的问题,它的HTML是 每次,我都会尝试输入一些文本 我明白错误了-

  • 任何提示都会很有帮助!

  • 大家好,我正试图在网站中找到一个元素,但出于某种原因,它不允许我。该网页是Reddit的登录形式,我尝试输入用户名和密码,但当我列出所有输入时,它只出现在顶部搜索栏中。我想这是因为它就像在另一个“标签”一样,它会弹出到前面,但我不知道如何管理它。提前谢谢。

  • 我正在尝试以下元素: 以下是Java代码: 它找不到元素。请帮忙。谢谢。

  • 然而,我知道它是失败的前一个命令(如下所示),因为它从来没有点击到这个页面。 失败代码; 也试过;