【问题标题】:Is there a way to get element by Xpath including hidden items in Javascript?有没有办法通过 Xpath 获取元素,包括 Javascript 中的隐藏项?
【发布时间】:2015-04-22 03:17:35
【问题描述】:

我需要通过 xpath 获取 DOM 元素。我从这个链接得到了答案 Is there a way to get element by XPath using JavaScript in Selenium WebDriver?。 在元素被隐藏(显示:无)的情况下,此函数不会返回确切的结果。

在示例中,我正在尝试获取第一个 div 内容,但它显示了第二个 div 元素,它将隐藏元素计入计数。我还需要计算隐藏元素。需要这方面的帮助。

【问题讨论】:

  • 那么使用jQuery selector - $('body > div:not(:hidden):first');$('body > div:visible:first'); 可能会更好一些性能...Fiddle

标签: javascript jquery


【解决方案1】:

我在这里有你的 sn-p 并稍作修改。

对我来说它有效,它甚至可以访问隐藏节点的内容并将其添加到结果页面。 (Firefox 35.0 浏览器/Debian)

您是否偶然将显示的 HTML 结果误解为日志输出?

function getElementByXpath (path) {
  return document.evaluate(path, document, null,
    XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}

document.write("<br/>1: [" + 
  getElementByXpath("//html/body/div[1]").innerHTML + "]");
document.write("<br/>2: [" + 
  getElementByXpath("//html/body/div[2]").innerHTML + "]");
<div style="display:none;">First Div</div>
<div>Second Div</div>

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 2015-04-02
    • 2019-09-28
    • 2012-08-28
    • 2015-12-11
    • 2015-03-29
    • 1970-01-01
    • 2020-03-11
    • 2015-01-26
    相关资源
    最近更新 更多