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

在Selenium测试中使用XPath通过文本获取WebElement

胡和煦
2023-03-14

我想找到任何基于使用XPath的文本的WebElement。

我感兴趣的网页元素,

它的HTML,

基本上,我试图通过文本检索的WebElement包含一个输入元素。

我目前使用的,

driver.findElement(By.xpath("//*[normalize-space(text()) = 'Own Hotel']"));

它找不到上面的WebElement,但通常可以检索所有其他web元素。

即使

By.xpath("//*[contains(text(),'Own Hotel')]")

没有给我任何结果。虽然我对精确的文本匹配感兴趣。

我正在寻找一种通过文本查找web元素的方法,该文本与web元素中存在的元素无关。如果文本匹配,它应该返回WebElement。

谢谢

共有2个答案

弓嘉纳
2023-03-14

以下超文本标记语言:

中的innerText Own Hotel

text()选择上下文节点的所有文本节点子节点

作为一种选择,您需要使用字符串函数字符串规范化空间(字符串?)如下:

driver.findElement(By.xpath("//*[normalize-space()='Own Hotel']"));

然而,它将是一个更好的主意,使您的搜索更细粒度添加标签名称,最好是一个unque属性如下:

>

  • 使用标记名和规范化-space()

    driver.findElement(By.xpath("//input[normalize-space()='Own Hotel']"));
    

    使用tagName和规范化空间()

    driver.findElement(By.xpath("//input[@name='ownHotel' and normalize-space()='Own Hotel']"));
    

    您可以在以下链接中找到一些相关的讨论:

    • 如何使用Selenium在网页上单击带有尾随空格字符的链接

  • 卢阳成
    2023-03-14

    文本似乎被包装在标签中,而不是输入。试试这个

    driver.findElement(By.xpath(".//label[text()[normalize-space() = 'Own Hotel']]"));
    

    这里对这个xpath模式有很好的解释

     类似资料:
    • 问题内容: 我想找到使用XPath基于文本的任何WebElement。 基本上,我要通过文本检索的WebElement包含一个输入元素。 我目前正在使用, 找不到上面的WebElement,但通常可以检索所有 其他Web元素。 甚至, 没有给我任何结果。虽然我对精确的文字匹配感兴趣。 我正在寻找一种通过文本来查找Web元素的方法,该文本 对Web元素内部存在的元素不重要。如果文本匹配,则应返回 W

    • 我正在尝试从网页复制一个文本元素并在我的控制台中打印它,作为对未来项目的测试。 这些是我收到错误时的行: 错误是这样的: 然后我的chomedrive关闭了。有什么问题?

    • 我有下面的HTML页面,我正在python下使用Selenium从HTML页面提取一些数据 <代码>

    • 我使用了以下代码, 这会引发错误“表达式不是合法表达式”。“代码:“12”nsresult:“0x805b0033(SyntaxError)”位置:”“]”。 当我缩小搜索范围到 它工作正常,我得到了特定行中的所有文本。然而,当我将其扩展到特定于第1个代码中所示的列时,我得到了错误。 html代码段,

    • 问题内容: 我的网页中有9行6列的表格。我想搜索文本“ MakeGoodDisabled- Programwise_09_44_38_461(n)”并获取单元格的xpath。我使用了以下内容,但由于无法在页面上找到文本而失败。你能帮忙吗?我正在使用Selenium Webdriver Junit对此进行编码。 问题答案: 我的意图是在表中查找文本并在同一行中获取相应的下一列值。我以为我将用所需的列

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