Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/55: Рейтинг темы: голосов - 55, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 16.08.2020
Сообщений: 10

Как из элемента html кода достать текст? На selenium webdriver python

26.09.2020, 13:24. Показов 12024. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Задача открыть главную Яндекса, ввести любое слово (например "Тинькофф"), появится окно с поисковыми подсказками. Нужно проверить, что в подсказках есть слово "тинькофф".

Пробовал по разному, никак не получается. Вот HTML
HTML5
1
2
3
<ul class="mini-suggest__popup-content" role="listbox" id="suggest-list-ndv7u14c7k">
    <li class="mini-suggest__item mini-suggest__item_type_fulltext mini-suggest__item_personal_yes mini-suggest__item_with-button" data-index="0" data-type="fulltext" role="option" data-text="тинькофф" data-personal="1" id="suggest-item-ndv7u14c7k-0" aria-selected="false"><b>тинькофф</b><span class="mini-suggest__delete mini-suggest__item-button"></span></li>
    <li class="mini-suggest__item mini-suggest__item_type_fulltext" data-index="1" data-type="fulltext" role="option" data-text="тинькофф личный кабинет" id="suggest-item-ndv7u14c7k-1" aria-selected="false"><b>тинькофф</b> личный кабинет</li>
Пытаюсь как-то так реализовать проверку слова в подсказке:
Python
1
2
3
element = driver.find_elements_by_id('suggest-item-ndv7u14c7k-0').text
for x in element:
    assert 'тинькофф' in x
Но ничего не получается (
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2020, 13:24
Ответы с готовыми решениями:

Как достать текст из html тега python?
Я уже знаю, что есть либа bs4 но все еще не понимаю как мне достать инфу из тега. Я знаю, что нужная мне информация лежит в теге &lt;a&gt;...

Selenium WebDriver Как удалять текст из textBox?
Всем привет. Такой вопрос: Есть на сайте текст бокс в котором написан текст, как можно из этого текстбокса удалить последнее слово или...

Как загрузить профиль по умолчанию в Chrome используя Python Selenium Webdriver?
Для работы с сайтом нужно авторизоваться, поэтому хочу сразу же подключить selenium.webdriver к данным своего аккаунта гугл следующим...

6
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.09.2020, 13:46
Цитата Сообщение от s_alexandrov Посмотреть сообщение
for x in element:
Зачем тебе цикл по символам?

А, понятно, ты получаешь список (find_elements), но думаешь что у списка есть свойство .text.

Его нет. Применяй text как раз в цикле.
2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
26.09.2020, 13:55
Лучший ответ Сообщение было отмечено s_alexandrov как решение

Решение

s_alexandrov, а разве это вообще у тебя не падает с ошибкой? ты просишь текст у списка элементов, а это так не работает

вот так например можно
Python
1
2
3
4
>>> d.find_element_by_css_selector('.mini-suggest__input').send_keys('тинькоф')
>>> texts = [e.text for e in d.find_elements_by_css_selector('li[id^="suggest-item-"]')]
>>> texts
['Вход | Тинькофф Банк\ntinkoff.ru/login', 'тинькофф личный кабинет', 'тинькофф', 'тинькофф бизнес', 'тинькофф банк', 'тинькофф инвестиции', 'тинькофф мобайл', 'тинькофф бизнес личный кабинет', 'тинькофф банкофф банк личный кабинет', 'тинькофф банк личный кабинет']
а уж убедиться в наличии слова тинькоф в списке думаю сообразишь
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.09.2020, 14:02
Цитата Сообщение от s_alexandrov Посмотреть сообщение
by_id('suggest-item-ndv7u14c7k-0')
Да, и вообще по id ищут только уникальные элементы.
Поэтому есть только метод find_element_by_id, а find_elements_by_id не существует.
Искать группу элементов нужно (как выше показали) по css,классу, имени тега и т.д методами find_elements_by_xxx
Или использовать общий метод find_elements, в котором можно написать нужный шаблон XPATH.

P.S. Я так понимаю , дока была пропущена при попытке выполнить задаение?
Вот дока - читай.
1
0 / 0 / 0
Регистрация: 16.08.2020
Сообщений: 10
26.09.2020, 18:45  [ТС]
Welemir1, а я примитивно решил)
Python
1
2
3
4
5
element = []
for x in driver.find_elements_by_css_selector('li[id^="suggest-item-"]'):
    element.append(x.text)
print(element)
assert 'тинькофф' in element
Но ваше решение круче) Пошел гуглить как это так получилось в одну строку сделать цикл и добавить в список))
Python
1
texts = [e.text for e in d.find_elements_by_css_selector('li[id^="suggest-item-"]')]
Добавлено через 1 минуту
Цитата Сообщение от Garry Galler Посмотреть сообщение
Да, и вообще по id ищут только уникальные элементы.
Поэтому есть только метод find_element_by_id, а find_elements_by_id не существует.
Искать группу элементов нужно (как выше показали) по css,классу, имени тега и т.д методами find_elements_by_xxx
Или использовать общий метод find_elements, в котором можно написать нужный шаблон XPATH.
P.S. Я так понимаю , дока была пропущена при попытке выполнить задаение?
Вот дока - читай.
Читал, но там мало примеров и не сразу все понятно(
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.09.2020, 18:56
Цитата Сообщение от s_alexandrov Посмотреть сообщение
там мало примеров
Примеров там дофига. А что касается самих поисковых шаблонов, то их там не будет. Их нужно просто знать, прежде чем заниматься парсингом: CSS и XPATH.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
26.09.2020, 18:59
Цитата Сообщение от s_alexandrov Посмотреть сообщение
Пошел гуглить как это так получилось
если бы прочел любую книгу по основам питона то знал бы. Очень советую именно прочесть, без основ далеко не уедешь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2020, 18:59
Помогаю со студенческими работами здесь

Не знаю, как из html кода достать текст и найти в нём слово
На пересдачу по ООП нужно решить и понять следующую задачу: Поиск в WEB.Search Web) Модифицировать данный на лекции WebCrawler.java...

Как получить элемент документа html внутри iframe Selenium Webdriver?
Добрый день. Например, есть html документ с тегом iframe и внутри расположен еще один документ html с тегами div. Нужно получить список div...

Отключение режима Webdriver (Python+Selenium)
Что дает нам отключение режима Webdriver (Python+Selenium)? Открываются какие то доступы? Напишите пожалуйста список плюсов и минусов...

Python + Selenium.Webdriver не видит элемент
Для создания теста необходимо, чтобы selenium нажимал на кнопку: &lt;button class=&quot;sqdOP yWX7d _8A5w5 &quot;...

Selenium webdriver. Получить текст
Здравствуйте, абсолютно не понимаю почему селениум не может найти элемент на странице. Я пытался найти элемент с помощью XPath и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru