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

通过包含内部标记的文本通过xpath查找标记

单于善
2023-03-14

我最近遇到了一个问题。

我需要在页面上找到一个包含特定文本的div标签。问题是,文本被内部链接标记分成两部分,因此超文本标记语言树看起来像:

**<html>
    <...>
    <div>
        start of div text - part 1
        <a/>
        end of div text - part 2
    </div>
    <...>
</html>**

为了唯一地标识div标记,我需要div文本的两部分。当然,我会想出类似XPath的方法:

.//div[contains(text(), 'start of div text') and contains(text(), 'end of div text')]

但是,它不起作用,第二部分找不到。

什么是唯一描述这种标签的最佳方法?

共有3个答案

闾丘卓
2023-03-14

这应该行得通:

//div[contains(text(), 'start of div text') and contains(./a/text(), 'end of div text')]
洪伟兆
2023-03-14

你就快到了。您只需将text()替换为

//div[contains(., 'start of div text') and contains(., 'end of div text')]

以下是验证的快照:

佟阳飙
2023-03-14

尝试使用以下XPath通过两个文本节点匹配所需的div

//div[normalize-space(text())="start of div text - part 1" and normalize-space(text()[2])="end of div text - part 2"]
 类似资料:
  • 这就是HTML代码。到目前为止,我已经进行了以下xpath查询: 这让我找到了

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

  • 我有一个大的超文本标记语言电子邮件表,我正在尝试查找特定电子邮件的名称,然后在此元素中选择一个按钮。我可以通过XPATH轻松找到表体: 那么在这个表中有多行(tr),是否可以在所有表行中搜索文本? 我得到的最接近的结果是: 不幸的是,这无法定位元素。 我知道我可以简单地复制XPATH以定位特定的tr,但是出于自动化目的,我尝试传递一个字符串,然后在所有tr中搜索我的特定文本。

  • 请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码:

  • 对于以下超文本标记语言: 我们可以将第一行与这个xpath匹配-- 我们无法将第2行与此xpath匹配-- BR标记正在运行。Selenium IDE的“Select”功能可以获取DIV标记xpath,但不能深入到它所包含的文本中。 有什么建议吗?

  • 我有一个非常简单的问题,我有一个div在一个html页面,我可以通过他的XPath访问这是:。 我想要一个XPath,可以提供这个div的所有子元素,但我找不到它。我需要用硒的findElements方法获取元素,但我测试的方法不起作用: 我的超文本标记语言代码如下: 我想这样使用XPath: 我的Java Selenium脚本如下: 我应该使用什么XPath来获取的子级? 编辑1:我确实使用了*