Селен локации элементов более чем одним методом - PullRequest
0 голосов
/ 14 марта 2019

Я использую Selenium для поиска элементов на странице.Есть ли способ объединить два метода вместе?Пример:

Метод 1: driver.find_elements_by_partial_link_text ('html')

Метод 2: driver.find_elements_by_class_name ('iUh30')

В идеале мне понравится метод, который находитэлементы, в которых указан как частичный текст ссылки, так и имя класса.

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Вы можете использовать xpath для объединения обоих селекторов:

driver.find_elements_by_xpath("//*[@class='iUh30'][text()[contains(.,'html')]]")

//* ищет любой элемент с любым тегом. Может быть <a>, может быть <div>, <input>, что угодно. Вы можете просто изменить его на нужный тег.

Приведенный выше поиск элемента по точное имя класса. Вы также можете использовать [contains(@class, 'partial_class')] для поиска элементов по частичному классу.

[text()[contains(.,'html')]] ищет элементы, которые частичный текст "html"

0 голосов
/ 14 марта 2019

Если вы хотите захватить весь класс, содержащий iUh30 , используйте следующий xpath

//*[contains(@class,'iUh30')] | //*[text()[contains(.,'html')]]

иначе, если вам нужны только элементы с точным текстом iUh30 в классах

//*[@class='iUh30'] | //*[text()[contains(.,'html')]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...