Selenium webdriver: как проверить, что элемент img действительно имеет атрибут высоты - PullRequest
0 голосов
/ 11 июля 2020

в java веб-драйвере Selenium на chrome, мне нужно убедиться, что изображение имеет атрибут высоты. У меня есть код HTML:

<img src="https://www.w3schools.com/tags/img_girl.jpg">

, и я пытаюсь выполнить

 boolean s = driver.findElement(By.tagName("img")).getAttribute("height") !=null;

, но это всегда возвращает true , хотя атрибута высоты нет! , и если я попытаюсь выполнить

String s = driver.findElement(By.tagName("img")).getAttribute("height");

, я получу 600, несмотря на то, что в коде HTML нет атрибута высоты. есть ли другой способ проверить это?

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Попробуйте этот пример:

@Test
public void testHeightAttribute(){
    driver.get("https://webelement.click/en/welcome");
    WebElement img = driver.findElement(By.xpath("//img[1]"));
    System.out.println(img.findElements(By.xpath(".[@height]")).size());
    System.out.println(img.findElements(By.xpath(".[@src]")).size());
}

Я не уверен, что это самый элегантный способ :). Идея состоит в том, что вы ищете элементы, используя сам элемент в качестве контекста поиска (поиск элемента внутри себя). Если в DOM нет атрибута, список будет пустым (size() == 0). В противном случае это будет 1.

В основном общий метод будет выглядеть так:

public boolean hasAttributeInDom(WebElement element, String attr){
    return !element.findElements(By.xpath(".[@" + attr + "]")).isEmpty();
}
0 голосов
/ 11 июля 2020

Вы можете проверить параметр высоты в разделе styles инструментов разработчика. См. Прикрепленный снимок экрана с образцом изображения из Stack overflow. Вы можете увидеть параметр height справа. Обычно здесь упоминаются размеры.

Вам нужно будет понять и найти определенное свойство изображения в разделе Styles как его свойства отображения CSS для всей страницы.

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...