Итерация по нескольким классам с использованием find_element_by_class_name в Selenium - PullRequest
3 голосов
/ 27 ноября 2011

Я использую Selenium webdriver в Python для проекта очистки веб-страниц.

На веб-странице, над которой я работаю, есть несколько записей в таблице с одинаковым именем класса.

<table class="table1 text print">

Я использую find_element_by_class_name. Однако я получаю сообщение об ошибке:

*Compound class names not permitted *

Другой вопрос:

Как перебрать все таблицы, имеющие одно и то же имя класса css?

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 ноября 2011

Вы должны использовать find_elements_by_class_name.Это вернет повторяемый объект.

1 голос
/ 29 ноября 2011

Ошибка, которую вы описываете, возникает, когда вы предоставляете несколько имен классов, а не одно. Простой способ обойти это - получить элементы с помощью CSSSelector или XPath. В качестве альтернативы вы можете использовать find_elements_by_class_name и предоставить одно имя класса, а затем выполнить итерацию по этому списку, чтобы найти элементы, которые соответствуют дополнительным именам классов, с которыми вы также хотите сопоставить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...