當使用getText()獲取一個普通的連結文字時:
- <a href="http://www.baidu.com">baidu</a>
如果得到的文字只為空,而非我們期望的baidu.那麼嘗試使用WebElement.isDisplayed()時候,將會得到false的結果.再嘗試使用getAttribute("href"),發現能夠爭取獲取href的值.由此可以說明:
- WebDriver判定isDisplayed為false的元素,那麼getText()將為空
- isDisplayed為false的元素,依然可以通過getAttribute()方法獲取元素的屬性.
所以,當getText()為空的時候,可以通過兩種方法獲取連結的文字
- 修改頁面當前元素,或者當前元素父元素的CSS,使元素的isDisplayed()值為true.
- 使用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