2014-04-09 66 views
1

,我有以下HTML的一部分:斷言Meta標籤使用Selenium/webdriver的(JAVA)

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

使用硒的webdriver(黃瓜)我下面這段代碼似乎並不奏效:

@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:卡存在,但它現在給我斷言錯誤。 我在做什麼錯?什麼是正確的定義?

回答

4

您的xpath正在檢查元標記的text()text()將返回塊中的內容。

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

你想要的是驗證meta content屬性。

嘗試:

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

這將驗證該<meta name="twitter:card" ... />是存在的,但不檢查的內容。

+0

這不是很有效......我想要做的唯一事情是斷言如果twitter:卡實際上是否存在。只要twitter:card是META標籤中的一個,我就很好。 – user3356141

+0

編輯。這是很難試圖確定你的意圖:) – sircapsalot

+0

編輯我的意圖以及:)我使用Assert.assertTrue( driver.findElement(By.cssSelector(「meta」))。getAttribute(「name」)。equals財產) );現在,但它仍然給我斷言錯誤。我不在乎我正在驗證哪個元標記 – user3356141