我正在爲Web相冊應用程序創建一套Selenium測試。我想測試圖像是否實際顯示(它包含有效的圖像數據)。這樣的事情可能嗎?Selenium - 檢查圖像是否顯示在頁面
回答
我在圖像的src如預期但圖像未顯示在頁面上之前面臨類似的情況。
您可以使用JavaScriptExcecutor檢查圖像是否顯示。
使用下面的代碼 - 傳遞WebElement(圖像) -
Object result = ((JavascriptExecutor) driver).executeScript(
"return arguments[0].complete && "+
"typeof arguments[0].naturalWidth != \"undefined\" && "+
"arguments[0].naturalWidth > 0", image);
boolean loaded = false;
if (result instanceof Boolean) {
loaded = (Boolean) result;
System.out.println(loaded);
}
您可以驗證圖像是否做這個實際加載的網頁。
您當然可以檢查圖片是否出現在頁面源中,例如通過使用XPath參數。
你可以假設,因爲它在頁面源代碼中,它會顯示,但我不知道有任何方法來實際驗證它。
有這種情況,當圖庫頁面生成好時,但圖像本身無效 - 例如由於圖像腳本中的異常。 – 2010-10-31 19:17:38
如果你願意使用TestPlan前端Selenium有幾個選項。一旦你有了圖像的URL,你可以抓住這個URL並檢查返回的標題。如果您想手動檢查數據,也可以將數據保存到文件中。或者你可以用Java編寫一個驗證器來獲取這些數據並檢查它是否實際解碼。
如果你願意嘗試一下,我會給你寫一個示例腳本。如果你願意,我甚至可以做一個快速的圖像驗證器功能。
這個軟件看起來很有趣,但我肯定會使用溴前端。我們公司已經花費了一些工時來定製它,並且僅僅因爲圖像測試不可行就拋棄了這項工作。謝謝你的提示。 – 2010-11-02 12:02:41
如果您使用的是Java,selenium有一個名爲eval
左右的方法。你給它一個JavaScript字符串,它會以字符串的形式給出結果。例如,你可以試試這個(在一行中):
var req = new XMLHttpRequest();
req.open('get', document.getElementById('imageid').src, false);
req.send(null);
req.status==200
這應該狀態200或「假」的東西,否則返回「真」。
如果圖像沒有ID,該怎麼辦?圖像有姓名和職業 - 在這種情況下該怎麼辦? – 2017-11-03 12:13:09
- 1. 檢查圖像是否有效顯示
- 2. 檢查是否顯示遠程圖像
- 3. 如何檢查使用Selenium在頁面上是否突出顯示文本?
- 4. 是否有可能檢查aspx頁面是否爲圖像
- 5. 使用JavaScript檢查頁面是否顯示在瀏覽器中?
- 6. PHP:檢查頁面是否顯示在iframe中?
- 7. Selenium c# - 我如何測試一個圖像src文件存在(驗證圖像是否顯示在頁面上)
- 8. 使用Selenium WebDriver頁面工廠檢查元素是否存在?
- 9. 檢查圖像是否在頁面上損壞
- 10. 如何檢查圖像是否在頁面上呈現?
- 11. 在顯示圖像之前檢查文件是否存在?
- 12. selenium顯示頁面出錯
- 13. 我如何檢查頁面是否加載了Selenium
- 14. 檢查頁面的資源中是否有圖像
- 15. 檢查圖像是否
- 16. 檢查iFrame頁面是否存在
- 17. 檢查用戶是否在頁面上
- 18. 檢查腳本是否存在頁面
- 19. 檢查用戶是否在頁面上?
- 20. Jquery - 檢查頁面是否存在
- 21. 如何檢查頁面是否存在?
- 22. JSF:如何檢查圖像是否有效顯示
- 23. 如何檢查圖像是否顯示邊框?
- 24. 圖像沒有顯示在json頁面
- 25. 在JSP頁面中顯示圖像
- 26. 在asp頁面中顯示圖像
- 27. 圖像顯示在asp頁面
- 28. 圖像不顯示在php頁面
- 29. 圖像未顯示在維護頁面
- 30. HTML /在HTML頁面中顯示圖像
謝謝,我沒有想到任何人在這幾個月後都會發布工作解決方案。我最終使用這段代碼來檢查頁面上是否存在所有圖像:var elems = document.getElementsByTagName(「img」); var allOk = true; for(var i = 0; i 0; console。 log(elems [i] .naturalWidth);} allOk;'。 –
2012-05-09 09:59:30
歡迎您。很高興它解決了你的問題。 – 2012-05-30 05:09:39
偉大的工作!一個注意事項:我們的開發人員有一個400px的佔位符圖像,當您滾動到它時,它們會用惰性加載的圖像進行交換。所以對我來說,最後一個測試是'arguments [0] .naturalWidth!= 400'。請諮詢您的開發人員尋求幫助。 – SiKing 2018-01-26 00:31:03