#selenium
#селен
Вопрос:
Прямо сейчас мое приложение отображает только 12 изображений во внешнем интерфейсе, но при загрузке через xpath оно показывает 18 изображений.
Используется x-path как:
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 и источник страницы к вашему вопросу…
Ответ №1:
Что вы пытаетесь здесь проверить? Если вы хотите проверить активные изображения (в вашем вопросе, я полагаю, это 12), используйте динамический xpath / css с атрибутом, связанным с активными изображениями. Нам было бы легко, если бы вы могли поделиться HTML-кодом.
Комментарии:
1. Привет, все они являются активными изображениями, но основаны на отображении изображений на экране с разрешением
Ответ №2:
Вы можете запустить 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" amp;amp; 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 ;
}
}
Надеюсь, это поможет.