如何验证页面上的文本块是否包含 ® 符号?

问题描述 投票:0回答:1

我正在为一系列工作网页创建自动化测试。其中一项任务是验证网页底部块的文本是否符合验收标准。我们使用 Selenium 和 Java 来执行自动化测试。我可以使用 XPath 将自动化指向我想要的位置,并且可以让它读取/验证该块的一半,但我的问题是文本块在元素中的公司名称后面包含 ® 符号。网页上的元素是这样的:

<div class="form-group"> == $0
    ::before
    <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"
            </a>
        </p>
    </div>
    ::after
</div>

我想验证一下:

“这里是前半部分法律术语。公司名称®后面还有更多法律术语。或者点击此处查看我们的条款和条件。”

当该块在页面元素中被分解时,如何使用我们的自动化来验证该块的整个文本?

我通常使用类似的东西

let termsAndConditions = await this.webDriver.findElement(By.xpath(<xpath>[contains(text(),"Text I'm looking to validate")])).isDisplayed();
expect(termsAndConditions).toBe(true);

但这在这里不起作用,因为元素中的

<sup>®</sup>
和超链接导致了中断。有没有办法根据用户在页面上看到的文本而不是 HTML 来验证这一点?

java selenium-webdriver
1个回答
0
投票

您只需从 DIV 中提取文本,然后

Assert
它与预期的文本相同。

示例代码

String expectedText = "Whatever the expected text is";
String actualText = driver.findElement(By.id("alerts-message")).getText();

Assert.assertEquals(actualText, expectedText);
© www.soinside.com 2019 - 2024. All rights reserved.