2012-05-22 19 views
6

我有以下內容的HTML頁面:硒的webdriver - 如何驗證多行文本

<center> 
      This is Login page. 
      <br> 
      Please click below link to Login. 
      <br> 
      <a href="xxx">Login</a> 
    </center> 

我如何可以驗證上面使用一個命令的webdriver所有靜態文本?

我嘗試了這些,但沒有它的工作:(

driver.findElement(By.xpath("//*[contains(.,'This is Login page.<br>Please click below link to Login')]")) 
driver.findElement(By.xpath("//*[contains(.,'This is Login page.\nPlease click below link to Login')]")) 

任何人都知道如何做到這一點

回答

6

你可以這樣做:

webDriver.findElement(By.id("<ID of center tag>")).getText().contains("This is Login page.Please click below link to Login.Login"); 

隨意使用的定位器您的選擇而不是By.id.

基本上,任何WebElement的getText()都會返回文本內容節點,剝離了所有的HTML標籤和評論。

+0

感謝Ashwin。剛剛纔知道getText()非常有用:) –

1

這比XP更受XPath的限制。

我不明白爲什麼你有使用全局XPath的選擇,更好的XPath的選擇應該是:

By.XPath("//center"); 

如果它在頁面上唯一的「中心」的標籤,甚至:

By.XPath(「// center [contains(text(),'這是一個登錄頁面')

如果通過代碼執行代碼而不是盲目地搜索,則會保留/ r和/ n字符它在XPath中。

+0

我使用全局XPath選擇器,因爲它實際上是在我的公共庫中的代碼來檢查文本。也許我應該在我的公共庫中使用另一種方法來檢查基於特定標記的文本。但回到這個問題,這意味着我應該這樣做,而不是︰ –

+0

是的,我會試圖找到它沒有包括/ r和/ n(新行和回車)字符,去更簡單的東西(就像我上面所做的那樣),並在獲得元素後檢查文本。之後在代碼中檢查它的結構會容易得多。如果不這樣做,你可以添加一個ID到中心標籤,並使用Ashwin的答案。 – Arran

+0

ok注意。我會試試看,非常感謝:) –

-1

如何找到文本,如果文本之間有空格。

 <br> 
     <br/> 
     Please click below link to Login. 
     <br> 
     <a href="xxx">Login</a> 
</center> 
+0

在另一個頁面上找到解決方案。如果有人和我有同樣的問題。使用此鏈接:https://groups.google.com/forum/#!topic/selenium-users/brPeac2QTvs,解決方案是:Assert.assertEquals(「電子郵件爲空。\ n請輸入電子郵件!」,驅動程序。 。findElement(By.xpath(XXXXXXXX))的gettext()); – Bibek

相關問題