@aab137

Селениум. Использую find_elements и get_atribute, а как сделать одним запросом, чтобы без ошибки not attached?

Делаю так:
dialogs = [i.get_attribute('data-list-id') for i in
                   self.find_elements_by_xpath('//ul[@id="im_dialogs"]/li[contains(@class, "nim-dialog_unread ")]')]

Здесь может вылезти ошибка not attached, как сделать, чтобы сразу находился не элемент, а атрибут одним запросом?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Насчёт not-attached - я подозреваю, ты не дождался, пока страница полностью прогрузится.
А вообще в XPath есть выбор значения атрибута:
//ul[@id="im_dialogs"]/li[contains(@class, "nim-dialog_unread ")]/@data-list-id

Либо, возможно, так
string(//ul[@id="im_dialogs"]/li[contains(@class, "nim-dialog_unread ")]/@data-list-id)

Здесь string() - это не Python-функция, а XPath-функция. Если селениум её поддерживает, то запрос должен вернуть именно строковое значение атрибута.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы