Как в CssSelector искать по позиции? Selenium, Java
как через CssSelector в java получить второй элемент в списке? В DOM имеется порядок из элементов, где все теги имеют одинаковые атрибуты:
<a href="/moskva/lichnye_veschi" target="_self" class="link-link-39EVK link-design-default-2sPEv link-novisited-1w4JY category-with-counters-link-1zX0y">Личные вещи</a>
<a href="/moskva/transport" target="_self" class="link-link-39EVK link-design-default-2sPEv link-novisited-1w4JY category-with-counters-link-1zX0y">Транспорт</a>
<a href="/moskva/rabota" target="_self" class="link-link-39EVK link-design-default-2sPEv link-novisited-1w4JY category-with-counters-link-1zX0y">Работа</a>
Мой код:
driver.get("https://www.avito.ru/moskva");
WebElement element = driver.findElement(By.cssSelector("a[class='link-link-39EVK link-design-default-2sPEv link-novisited-1w4JY category-with-counters-link-1zX0y']"));
String par = element.getText();
System.out.println("attribute = " + par );
Таким образом я получаю только тег: "личные вещи", а как например получать второй или третий, если у всех тегов одинаковые значение атрибутов? nth-of-type не работает.
Ответы (1 шт):
Автор решения: Alexey R.
→ Ссылка
В css-селекторах существ ует специальный синтаксис для работы с атрибутом class. Доуступ к такому атрибуту осуществляется через точку (.). В Вашем случае, локатор будет такой:
WebElement element = driver.findElement(By.cssSelector("a.link-link-39EVK.link-design-default-2sPEv.link-novisited-1w4JY.category-with-counters-link-1zX0y:nth-child(2)"));