Как пропустить первый элемент на веб-странице и выбрать второй элемент с помощью selenium

#java #selenium #selenium-webdriver #selenium-chromedriver

#java #selenium #selenium-webdriver #selenium-chromedriver

Вопрос:

У меня есть два элемента на веб-странице с одинаковым текстом ссылки в той же структуре таблицы. Я должен игнорировать первый элемент и каждый раз выбирать второй элемент, если он присутствует. Но проблема в том, что selenium каждый раз выбирает первый элемент, как я могу выбрать второй элемент вместо первого элемента (игнорировать первый элемент)?

Я не могу использовать ничего, кроме Linktext, для идентификации этого элемента с помощью selenium, это ограничение.

Комментарии:

1. присутствуют ли значения в таблице? если да, то выберите конкретное значение локатора ячейки

2. Используйте driver.findElements(By ……), который возвращает список … если размер списка равен 2, затем возьмите второй элемент. Остальное игнорируется в зависимости от размера.

3. Как проверить размер списка и как выбрать второй элемент этого списка. Можете ли вы объяснить это подробно?

4. @Parth list.size() второй элемент — список (1)… Просто найдите в Google учебное пособие по списку java.

Ответ №1:

когда элементы, имеющие одинаковый текст ссылки или имеющие одинаковые loactors, в java присутствует одна коллекция, т.е. List создает список webelements, имеющих такой сценарий, затем по индексу вы можете получить доступ к элементам.

 List<WebElement> list1 = driver.findElements(By.linkText("Services"));
for(int i=0;i<list1.size();i  )
{
 System.out.println(i " " list1.getText());
 //this can be used incase number of elements is more and no time to count there index
}
list1.get(1).click();
  

Ответ №2:

Здесь это для получения второго элемента через текст ссылки, где я использовал класс collection для хранения всех одинаковых элементов.

 List<WebElement> li = driver.findElements(By.linkText("Services"));;
li.get(1).click();