【问题标题】:Unable to locate an element implemented as Span with Selenium WebDriver (Java)无法找到使用 Selenium WebDriver (Java) 实现为 Span 的元素
【发布时间】:2016-04-02 17:26:54
【问题描述】:

在 Selenium IDE 中记录时,结果是这样的:

点击 //span[@id='some_text']/table/tbody/tr/td/table/tbody/tr[2]/th/hd/font/span/acronym

这是我在 Eclipse 中使用 WebDriver(Java) 的条目

driver.findElement(By.xpath("//span[@id='some_text']/table/tbody/tr/td/table/tbody/tr[2]/th/h2/font/span/acronym ")).click();

这是我收到的错误:

没有这样的元素:无法找到元素: {"method":"xpath","selector":"//span[@id='some_text']/table/tbody/tr/td/table/tbody/tr[2]/th/h2/font/span /首字母缩略词"},

HTML

<span onclick="change_site"('SITES');" style="cursor:pointer; color:#12345; text-decoration:underline;">
    <acronym title=Site ID:">DEFAULTSITE</acronym>
</span>

【问题讨论】:

  • 这是当我使用 FireBug 检查元素时 HTML 代码的外观:“DEFAULTSITE" 我想点击“DEFAULTSITE”链接
  • 感谢您在下面的所有回复。它们看起来都很合乎逻辑,我不明白为什么它们不起作用,但我不断收到同样的错误。我已经尝试了以下所有建议。如果有任何其他信息可能有帮助,请告诉我。我可以从 Selenium IDE 中提供或做任何可能有用的事情吗?谢谢!
  • 好吧,我想通了。我基本上必须先切换到适当的框架。我使用了这个语句:driver.swithTo().frame("frame name"),然后我点击了一个使用 By.cssSelector 的链接。这解决了我的问题!

标签: java selenium xpath selenium-webdriver


【解决方案1】:

如果以上 Xpath 都不适合你,请尝试以下 Xpath

//span[@id='some_text']/table/tbody/tr/td/table/tbody/tr[2]/th/hd/font/span/*[name()=acronym]

如果这对您有帮助,请告诉我。

【讨论】:

    【解决方案2】:

    尝试以下任一xpath

    driver.findElement(By.xpath("//acronym[text()='DEFAULTSITE']");
    driver.findElement(By.xpath("//span/acronym[text()='DEFAULTSITE']");
    

    或者这个css

    driver.findElement(By.css("acronym[title='Site']");
    

    【讨论】:

      【解决方案3】:

      试试下面的 xPath:

      driver.findElement(By.xpath("//acronym[contains(text(),'DEFAULTSITE')]").click();
      

      【讨论】:

        【解决方案4】:

        根据提供的 HTML,您可以直接访问 acronym 元素

        driver.findElement(By.xpath("//span/acronym[@title='Site Id:']")).click();
        

        【讨论】:

        • 此 Xpath 选择结果为 InvalidSelectorException。我们不能试试By.cssSelector("acronym[title=Site]")).click() 吗?它正在点击 URL。
        • @Mitaleek,无论如何你也可以使用 cssSelector。在一天结束时,它的“无论什么都有效”:)。对于 xpath 不起作用,提供更多 html 可能会有所帮助,因为我的回答仅限于问题中给定的 html。
        • @Mitaleek,我的错,我的代码中的 xpath 使用了错误的斜杠。向后而不是正斜杠。编辑了答案。如果你愿意,你也可以试试 xpath。
        • 是的,我也认为xpath的斜线是错误的,它仍然给出同样的错误,因此想到了上面的评论:)
        猜你喜欢
        • 1970-01-01
        • 2014-05-29
        • 2016-08-31
        • 2023-04-01
        • 1970-01-01
        • 2016-04-17
        • 2019-02-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多