2012-07-24 67 views
4

我有一個可點擊的圖像,它在FireFox中不可見。我的意思是,沒有圖像,但有一個元素(它是可點擊的)。 FindElement(by).Displayed returns true,but still still no image。 問題是我該如何檢查,這個圖像是否可見?WebDriver的圖像(不是元素)可見性

此外,我發現在HTML標題錯誤(原因,爲什麼圖像不可見),也許有一種方法來檢查使用HTML標題圖像存在?

public bool IsFileIconDisplayed() 
     { 
      return IsElementDisplayed(By.XPath("//*[@class='SomeClass']/img")); 

     } 

protected bool IsElementDisplayed(By by) 
     { 
      return FindElement(by).Displayed; 
     } 
+0

發佈您的代碼在這裏 – 2012-07-24 09:22:59

+0

那麼是什麼使得它隱藏/消失/顯示?它是否應用了任何CSS?它什麼時候隱藏起來? (即在頁面加載時,當你將鼠標懸停在它上面時,是什麼?) – Arran 2012-07-24 16:04:45

+0

我的問題的答案在下面由Ashwin Prabhu給出,謝謝。 – 2012-07-25 09:09:50

回答

4

圖像是否將樣式的寬度和高度設置爲預設值?

如果不是,您可以在Javascript中查詢圖像元素的客戶端寬度和高度屬性。

document.getElementById(<webElement>).getClientRects()[0].width 
document.getElementById(<webElement>).getClientRects()[0].height 

或只是

document.getElementById(<webElement>).naturalWidth 

隨着JavascriptExecutor你應該能夠將這些值繪製到Java/C#代碼,並得出結論圖像加載/不是基於它的寬度/高度加載。

+0

沒有好的,寬度和高度> 0,所以測試認爲圖像顯示。 – 2012-07-24 12:03:03

+0

這是預期的。不要與0進行比較。瀏覽器有一個回退圖像,它的固定寬度和高度通常小於100 x 100。排除這種情況。它應該很容易。 – 2012-07-24 13:40:14

+0

我試過在chrome(顯示圖像的地方)和FireFox(其中圖像未顯示)中的document.getElementsByClassName(「Class」)[1] .children [0] .width ** ,結果是相同的 - 60px。 我在做什麼錯? – 2012-07-24 13:55:07

相關問題