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

在Selenium WebDriver中有没有使用JavaScript通过XPath获取元素的方法?

诸葛绍元
2023-03-14
getElementByXpath(//html[1]/body[1]/div[1]).innerHTML

[固定]

我正在使用jsoup在Java中完成它。这符合我的需要。

共有1个答案

司寇高峯
2023-03-14

您可以使用document.evaluate:

计算XPath表达式字符串,如果可能,返回指定类型的结果。

它是W3标准的,并且是完整的文档:https://developer.mozilla.org/en-us/docs/web/api/document.evaluate

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

console.log( getElementByXpath("//html[1]/body[1]/div[1]") );
<div>foo</div>
 类似资料:
  • 问题内容: 我正在寻找类似的东西: 我需要使用JS获取元素的innerHTML(要在Selenium WebDriver / Java中使用它,因为WebDriver本身无法找到它),但是如何? 我可以使用ID属性,但并非所有元素都具有ID属性。 [固定] 我正在使用jsoup在Java中完成它。这符合我的需求。 问题答案: 您可以使用: 计算XPath表达式字符串,并在可能的情况下返回指定类型的

  • 我需要通过xpath获取DOM元素。我从这个链接中得到了答案,在SeleniumWebDriver中有没有一种使用JavaScript通过XPath获取元素的方法?。在隐藏元素(显示:无)的情况下,此函数不会返回准确的结果。 在本例中,我尝试获取第一个div内容,但它显示了第二个div元素,它将隐藏元素带入计数。我还需要在计数中提取隐藏元素。在这方面需要帮助。

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 我的HTML中有1个按钮和一些文本,如下所示: 当用户单击按钮时,中的内容将成为以下预期结果: 谁能帮我如何编写javascript函数?谢谢。 问题答案: 尽管这是一个非常棘手的解决方案,但由于它仍然是公认的答案,因此我将Gabi的代码合并到其中,而我自己的代码将成为一个不好的例子。

  • 嗨,我一直在到处寻找一个非常简单的解释,如何通过xPath找到一个元素。 我想要的只是一种简单的方法来寻找一个元素,但是我想要找到的所有帮助都需要一个。这对我不管用。以下是我想做的: 加载URL 这是我的代码: 当我执行 我得到未定义时,我做 有没有更简单的方法来获取元素?也许是。。。。

  • HTML部分: 下面是我正在尝试的Xpath: 但是得到例外: 无效的选择器:由于以下错误,无法找到 xpath 表达式为 //li[文本()=//li[. = 'admin'] 的元素: 语法错误:未能对“Document”执行“evaluate”:字符串“//li[text()=//li[。= 'admin']'不是有效的XPath表达式。 精确查看UI和超文本标记语言代码: 该字段会自动完成