java - 使用 Selenium/webdriver (java) 断言元标记

标签 java selenium webdriver

我有以下一段 html:

<head>
<meta name="twitter:card" content="summary"></meta>
</head>

使用 Selenium Webdriver (Cucumber) 我有以下似乎无法正常工作的代码:

    @and("^Meta is being checked with property \"([^\"]*)\"$")
    public void check_meta(String property) throws Throwable {
    String meta = driver.findElement(By.xpath("//meta[contains(text(), \"" + property + "\")]")).getText();
    Assert.assertTrue(meta.contains(property));
}

我正在尝试断言 twitter:card 是否存在,但它现在给了我断言错误。 我究竟做错了什么?正确的定义是什么?

最佳答案

您的 xpath 正在检查 text()的元标记。 text()将返回 block 中的内容。

<meta ....></meta>
          /\  It will return what's in here.

您想要的是验证元 content属性。

尝试:

Assert.assertTrue(
    driver.findElements(By.cssSelector("meta[name='twitter\\:card']")).size() > 0
);

这将验证 <meta name="twitter:card" ... />有,但不检查内容。

关于java - 使用 Selenium/webdriver (java) 断言元标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22963537/

相关文章:

java - 在 Java 中使用 selenium 等待元素加载时出现问题

Selenium 测试被最近的 safari 更新到版本 13 破坏了?

java - 从 Azure 服务总线队列接收 NULL 消息正文内容

java - SonarQune 提示从 wsdl 文件生成的 _equalsCalc 变量不是 transient 的或可序列化的

java - 父模块中的 Gradle 依赖平台

javascript - 在 <span> 标签和 <td> 中为链接编写点击事件

java - 如何使用 webdriver 打开新选项卡并在其中输入地址

java - CGLib 混合示例

python - Selenium 需要很长时间才能找到一个元素。有什么我可以做的吗?

java - 如何在 selenium webdriver 中使用 css 检查按钮是否被禁用