В моем проекте используются Robot Framework и Selenium2Library для тестирования веб-системы.Как обратиться к определенному элементу из списка, найденного css locator
Мне нужно использовать определенный элемент из списка элементов, найденных css-локатором. Например, .innerTable> tbody> tr> td найдет 10 элементов, и мне понадобится второй элемент из них. В моем предыдущем проекте я мог бы сделать следующее, чтобы обратиться к нужному элементу:
specific_cell = driver.find_elements(By.CSS_SELECTOR, ".innerTable>tbody>tr>td")[1]
Это означает, что он создает список элементов и с помощью индекса можно выбрать конкретный один. Но кто-нибудь знает, могу ли я сделать что-то подобное с Robot framework + Selenium2Library?
Я пытался понять, есть ли способ достичь результата, используя только ключевые слова Selenium2Library. По-видимому, это невозможно с существующими ключевыми словами.
Чтобы реализовать возможность использования одного определенного элемента из многих идентифицированных локатором (в оригинальном вопросе это были ячейки таблицы, найденные с помощью селектора css), нам нужно спуститься в библиотеки Selenium2Library и создать там новые методы.
В C: \ python27 \ Lib \ сайт-пакеты \ Selenium2Library \ keywords_element.py один может добавить такой метод
def return_elements(self, locator):
"""Returns a list of elements identified by a given locator.
"""
elements = self._element_find(locator, False, True)
if elements is None:
raise AssertionError("Could not find element(s) '%s'" % (locator))
return elements
Это будет возвращать список веб-элементов объектов, и этот список может быть использован для укажите конкретный элемент и затем выполните некоторые действия по этому вопросу. Но если вам нужны такие действия, как щелчок, получить текст или тип, тогда в одном классе должны быть созданы дополнительные методы. Ну, это не выглядит оптимальным, но, по крайней мере, это делает работу. Другой вариант - использовать xpath и не беспокоиться об этом выше, но как только вы создаете огромные страницы с большим количеством похожих элементов и добавляете здесь требование использовать Internet Explorer, тогда xpath может быть чем-то, чего вы хотите избежать
Селен 2 * есть * WebDriver. Вы должны иметь возможность получить этот элемент, используя этот точный фрагмент кода. Что вы пробовали? – Droogans