2015-08-13 106 views
-1

我試圖驗證圖像是否存在於網頁上。你能建議我最可行的代碼嗎?我在下面給出必要的細節。使用Selenium Webdriver驗證網頁上的圖像存在

(這裏我指的是在左上側的主產品圖像中綠色)

頁網址:http://www.marksandspencer.com/ditsy-floral-tunic/p/p60072079

另外,如果你想我可以發送屏幕截圖。請發給我電子郵件ID。

請儘早提出,因爲我需要它。圖像將被顯示=)

+1

請添加相關的HTML代碼和你已經嘗試解決你 – drkthng

+0

的這個問題理論問題 - >理論答案:如果sourcecode.contains(「foo.jpg」) - > yolo。 – C4u

回答

0

嘗試通過XPath來檢查發現元素的大小如果圖像是本,

  1. 察看此IMG SRC包含文件名
  2. 察看此IMG webelement大小如果大於第一個你想要的尺寸
  3. 這一個有點超出了webdriver的範圍,你需要從img webelement獲得src屬性,然後向src發出GET請求,看看你是否得到200 OK。

上述驗證只會幫助確保頁面上存在圖像,但除非進行圖像比較,否則無法驗證所需圖像是否正在顯示。

如果你想要做的圖像進行比較,然後看看https://github.com/facebookarchive/huxley

0

下面是一些方法,使用它可以驗證 -

".//*[@class='s7staticimage']/img" 

如果寬度大於10px的:

0

這裏是驗證網頁中的所有圖片的代碼 - 硒webdriver的,TestNG的,Java的。

公共無效testAllImages(){

//測試網頁 - www.yahoo.com

wd.get("https://www.yahoo.com"); 

    //Find total No of images on page and print In console. 
    List<WebElement> total_images = wd.findElements(By.tagName("img")); 
    System.out.println("Total Number of images found on page = " + total_images.size()); 

    //for loop to open all images one by one to check response code. 
    boolean isValid = false; 
    for (int i = 0; i < total_images.size(); i++) { 
    String url = total_images.get(i).getAttribute("src"); 

    if (url != null) { 

     //Call getResponseCode function for each URL to check response code. 
     isValid = getResponseCode(url); 

     //Print message based on value of isValid which Is returned by getResponseCode function. 
     if (isValid) { 
     System.out.println("Valid image:" + url); 
     System.out.println("----------XXXX-----------XXXX----------XXXX-----------XXXX----------"); 
     System.out.println(); 
     } else { 
     System.out.println("Broken image ------> " + url); 
     System.out.println("----------XXXX-----------XXXX----------XXXX-----------XXXX----------"); 
     System.out.println(); 
     } 
    } else {  
     //If <a> tag do not contain href attribute and value then print this message 
     System.out.println("String null"); 
     System.out.println("----------XXXX-----------XXXX----------XXXX-----------XXXX----------"); 
     System.out.println(); 
     continue; 
    } 
    } 
} 
相關問題