gpt4 book ai didi

java - Selenium:在 Java 中使用 cssSelector 提取 div 的文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:05 26 4
gpt4 key购买 nike

我正在使用 Selenium 为网页编写 JUnit 测试,并且我正在尝试验证页面中是否存在预期的文本。我正在测试的网页代码如下所示:

<div id="recipient_div_3" class="label_spacer">
<label class="nodisplay" for="Recipient_nickname"> recipient field: reqd info </label>
<span id="Recipient_nickname_div_2" class="required-field"> *</span>
Recipient:
</div>

我想将预期的内容与页面上的内容进行比较,所以我想使用断言.assertTrue()。我知道要从 div 中获取所有内容,我可以做到

String element = driver.findElement(By.cssSelector("div[id='recipient_div_3']")).getText().replaceAll("\n", " ");

但这将返回“reqd info * Recipient:”

有没有什么方法可以使用 cssSelector 从 div(“收件人”)中获取文本,而无需其他标签?

最佳答案

您不能使用 CSS 选择器执行此操作,因为 CSS 选择器没有足够细粒度的方法来表达“包含在 DIV 中但不包含其他内容的文本节点”。不过,您可以使用 XPath 定位器来做到这一点:

driver.findElement(By.xpath("//div[@id='recipient_div_3']/text()")).getText()

该 XPath 表达式将识别作为 DIV 直接子节点的单个文本节点,而不是它及其子节点中包含的所有文本。

关于java - Selenium:在 Java 中使用 cssSelector 提取 div 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com