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

时间:2014-04-09 13:08:00

标签: 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,但它现在给我断言错误。 我究竟做错了什么?什么是正确的定义?

1 个答案:

答案 0 :(得分:4)

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

<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" ... />是否存在,但不检查内容。