Есть ли способ извлечь отображаемое имя веб-элемента с помощью селена? - PullRequest
4 голосов
/ 05 июля 2019

Я пытаюсь получить доступ к названию различных продуктов, отображаемых на веб-сайте, используя селен.Например, на https://www.supremenewyork.com/shop/all/jackets я могу найти продукты (webElements) и поместить их в список, но я не могу получить их название (как показано под изображением).Есть ли способ сделать это с помощью Selenium (в Java)?

Я попробовал большинство методов в интерфейсе API WebElement.

driver.get("https://www.supremenewyork.com/shop/all/");
ArrayList <WebElement> list = new ArrayList<>();
list.addAll(driver.findElements(By.className("inner-article")));
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i).getTagName());
}

Я бы ожидал вывод консоли, отображающийимена всех продуктов на странице Однако я получаю список с той же строкой: "div".

Ответы [ 3 ]

1 голос
/ 05 июля 2019

Вы должны использовать .getText ().замените строку на

System.out.println(list.get(i).getText());
0 голосов
/ 05 июля 2019

Вы можете попробовать использовать метод getText(), в соответствии с документацией он вернет весь видимый текст из элемента и всех подэлементов.Если вам нужно только название продукта или цвет, попробуйте использовать By.ByCssSelector(String cssSelector) и укажите селектор как «.inner-article pa» для цвета или «.inner-article h1 a» для имени при выборе элементов.

0 голосов
/ 05 июля 2019

Селен документы утверждают, что
«Получить имя тега этого элемента. Не значение атрибута name: вернет« input »для элемента.»

Если вы пытаетесь получить атрибут name. Вы должны попробовать

System.out.println(list.get(i).getAttribute("name"));

Имя можно изменить для любого другого атрибута, который вы хотите.

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