#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();