2016-10-03 88 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++; 
    } 
} 

我希望这有助于。