WebElement.getText()為空解決方法

sherri_du發表於2016-06-15

當使用getText()獲取一個普通的連結文字時:

Html程式碼  收藏程式碼
  1. <a href="http://www.baidu.com">baidu</a>  

如果得到的文字只為空,而非我們期望的baidu.那麼嘗試使用WebElement.isDisplayed()時候,將會得到false的結果.再嘗試使用getAttribute("href"),發現能夠爭取獲取href的值.由此可以說明:

  1. WebDriver判定isDisplayed為false的元素,那麼getText()將為空
  2. isDisplayed為false的元素,依然可以通過getAttribute()方法獲取元素的屬性.

所以,當getText()為空的時候,可以通過兩種方法獲取連結的文字

  1. 修改頁面當前元素,或者當前元素父元素的CSS,使元素的isDisplayed()值為true.
  2. 使用getAttribute("innerHTML")獲取文字值

由此我們也可以知道,isDisplayed為false,是指那個元素是存在的,只是webdriver認為不見.回到關鍵問題,webdriver是如何判斷一個元素是否displayed,請參照:

http://www.w3.org/TR/webdriver/#determining-visibility

 

事實上,我所要測試的link,在執行的時候並非隱藏而是可見的,執行中獲取的CSS display值為block而非none.

大概是因為我的目標連結是在一個彈出下拉選單中的原因

 

本文出自"lijingshou"部落格,轉載請務必保留此出處http://lijingshou.iteye.com/blog/2082704

相關文章