2016-10-03 82 views
0

僅顯示可見光圖像現在我的應用程序只顯示12在前端的圖像,但同時通過的XPath獲取它顯示18張圖像。如何通過硒腳本

使用的X路徑爲:

driver.findElemnt(By.xpath("xpath")).size(); 

使用的代碼:

int showCount = driver.findElements(By.xpath(ObjRepoProp.getProperty("homePageShowLogoImage_XPATH"))).size(); 

for (int i = 1; i <= showCount; i++) { 
driver.findElement(By.xpath(ObjRepoProp.getProperty("homePageShowLogoImage_XPATH"))).isDisplayed(); 
         i=i+1; 
         log.info(i + "shows are present in GET TO KNOW THE SHOW section (Count of only shows which are displaying on screen).\n"); 
} 

我需要顯示僅12張圖像。

+1

添加實際XPath和頁面的源代碼,以您的問題... – Grasshopper

回答

1

你想在這裏驗證什麼?如果您正在尋找驗證活動圖像(在我的問題中,我相信它是12),請使用與活動圖像相關的動態xpath/css屬性。如果您可以分享HTML代碼,對我們來說很容易。

+0

嗨,全部是活動圖像,但基於顯示分辨率的屏幕圖像 – karthik

0

你可以運行JavaScript來驗證所有圖像正確加載,找到小片的下面的代碼來做到這一點。

EventFiringWebDriver eventFiringWebDriver = new EventFiringWebDriver (driver); 

List<WebElement> allImages = eventFiringWebDriver.findElements(By.tagName("img")); 
int countBrokenImages = 0; 
List<String> brokenimageUrl = new ArrayList<String>(); 

String script = "return (typeof arguments[0].naturalWidth!=\"undefined\" && arguments[0].naturalWidth>0)"; 

for (WebElement image : allImages) 
{ 
    Object imgStatus = eventFiringWebDriver.executeScript(script, image);   
    if(imgStatus.equals(false)) 
    { 
     String currentImageUrl = image.getAttribute("src"); 
     String imageUrl = currentImageUrl ; 
     brokenimageUrl.add(imageUrl); 
     countBrokenImages++; 
    } 
} 

我希望這有助於。