我正在为一系列工作网页创建自动化测试。其中一项任务是验证网页底部块的文本是否符合验收标准。我们使用 Selenium 和 Java 来执行自动化测试。我可以使用 XPath 将自动化指向我想要的位置,并且可以让它读取/验证该块的一半,但我的问题是文本块在元素中的公司名称后面包含 ® 符号。网页上的元素是这样的:
<div id="alerts-message" class="dynamic-message-wrap">
<p>
"The first half of the legal jargon here. The company name"
<sup>®</sup>
" has even more legal jargon after. Or click here to view our "
<a href="URL" target="_blank"> == $0
"Terms&npsp;&&npbp;Conditions"
::after
</a>
</p>
</div>
我想验证一下:
“这里是前半部分法律术语。公司名称®后面还有更多法律术语。或者点击此处查看我们的条款和条件。”
当该块在页面元素中被分解时,如何使用我们的自动化来验证该块的整个文本?
我经常用
webDriver.findElement(By.xpath(<xpath>[contains(text(),"Text I'm looking to validate")]))
但这在这里不起作用,因为元素中的
<sup>®</sup>
和超链接导致了中断。有没有办法根据用户在页面上看到的文本而不是 HTML 来验证这一点?
您只需从 DIV 中提取文本,然后
Assert
它与预期的文本相同。
示例代码
String expectedText = "Whatever the expected text is";
String actualText = driver.findElement(By.id("alerts-message")).getText();
Assert.assertEquals(actualText, expectedText);