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

Selenium WebDriver查找对象文本。xpath表达式的结果错误为:[object Text]。它应该是一个元素

叶翰林
2023-03-14

我正在使用Selenium来验证网页中是否存在某些文本。这就是html的样子。

<html>
<div class="a-content">
 <!--!-->==$0
 "
        Text to Find"
 <br>
 <br>
 "
        Second Text to find"
 <br>
</div>

我能够识别该文本的唯一方法是通过XPath。

//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()[1] 

我无法使用常规的方法来标识这个元素,因为它返回的是对象文本而不是元素。

var x = webDriver.FindElement(By.XPath("//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()")).Text;

这是我得到的错误:

IJavaScriptExecutor javascriptExecutor = (IJavaScriptExecutor)webDriver;
String value = (String)javascriptExecutor.ExecuteScript("document.evaluate(\"//div[contains(@class, 'a-content')]//br[1]/preceding-sibling::text()[1]\") ; ");

对此我们非常感谢您的帮助。

共有1个答案

古棋
2023-03-14

您应该能够取出“::Text()”来获取web元素(然后获取Text属性):

var x = webDriver.FindElement(By.XPath("//div[contains(@class, 'a-content')]//br[1]/preceding-sibling")).Text;

添加::text()将返回所选元素的文本。这是xapth的一个特性,不符合WebElement对FindElement的期望。

 类似资料:
  • 我使用的是MongoDB 3.2.1/python 3.4/pymongo/pandas 0.17(尽管后两个可能与这个问题完全无关)。 我对MongoDB find有一个非常奇怪(和错误)的行为。 我有一个收藏,包含这样的文档: 这个“_id”基本上是使用Python 3.4的“Hash”内置方法计算的哈希。 问题是,在插入该id后,我找不到任何具有该id的元素。 我已经尝试过了(在这一点上,我

  • 我的PHP脚本具有以下格式的函数,但我需要找到i8n中的所有字符串。 使用一些正则表达式,我设法获得了接近我想要的结果。 对于这种情况,RegEx是完美的。当同一行上有其他内容并最终合并结果时,就会出现问题。 我如何获得每一个单独?

  • 现在我解决了这个问题。以下是我错误的中缀表达式检查代码,中缀到后缀,后缀到结果评估:

  • 问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写

  • 我使用的是jsf2.0和spring3.0。我在web.xml中集成了spring上下文。当试图将素数应用于我的jSF页面时,它显示了上述问题。我在WEB-INF/lib中包含了primefaces3.4jar,还放入了类路径。并在jsf页面中添加了相关的名称空间。我遇到了如上所述的错误。我在这里放了WEB-INF/lib 我使用的是myfaces jsf2.o版本。和我的jsf页面login.x