Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/164: Рейтинг темы: голосов - 164, средняя оценка - 4.55
 Аватар для VaLenOK007
4 / 4 / 4
Регистрация: 12.04.2011
Сообщений: 125

Поиск текста на странице с Selenium

18.05.2015, 10:56. Показов 34815. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет камрады.

Решил засесть за web с питоном, появился вопросик.

Работаю с Selenium, разобрался как вводить логопасы и тд, но вот как найти нужный текст на страничке всё никак не могу понять.

Допустим, у нас есть сайт, и если перейти на него по кривой ссылке, там выскакивает Error 404.

Код в вебе такой:


HTML5
1
2
3
4
5
6
7
<div id="main_content">
        <h1>Error 400</h1>
        <p>Incorrect request.</p>
        
        
        
            </div>
Понимаю, что там должен быть xpatch, но не знаю как его применить для поиска именно текста...


Как, хоть примерно, это всё можно выловить и сравнить с контрольной строкой?

Заранее, благодарю за ответ
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2015, 10:56
Ответы с готовыми решениями:

Selenium, выделение текста на странице
Всем привет! Суть вопроса такова. Есть сайт, с генерируемой текстовой информацией. Мне нужно зайти на этот сайт, найти конкретный...

Поиск элементов на странице. Selenium
Всем привет, у меня вопрос по поиску элемента на странице. Делаю что-то вроде скрипта, наверное, для покупки вещей на сайте, когда дохожу...

Поиск элементов на странице, Python selenium
Здравствуйте. Пишу скрипты для автоматизации действий пользователя и в большинстве функций ищу элементы по средством xpath. Знаю, что...

12
18.05.2015, 11:25

Не по теме:

Цитата Сообщение от VaLenOK007 Посмотреть сообщение
xpatch
воу воу воу, полегче)

0
 Аватар для VaLenOK007
4 / 4 / 4
Регистрация: 12.04.2011
Сообщений: 125
18.05.2015, 12:02  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
воу воу воу, полегче)
а шо не так?
0
23 / 23 / 16
Регистрация: 17.01.2014
Сообщений: 81
18.05.2015, 12:17
Цитата Сообщение от VaLenOK007 Посмотреть сообщение
а шо не так?
Может вы имели в виду xpatH?
0
 Аватар для VaLenOK007
4 / 4 / 4
Регистрация: 12.04.2011
Сообщений: 125
18.05.2015, 12:25  [ТС]
Цитата Сообщение от TroSer Посмотреть сообщение
xpatH
Пардону прошу, опечатался)
0
23 / 23 / 16
Регистрация: 17.01.2014
Сообщений: 81
18.05.2015, 12:26
можно смотреть в эту сторону
Python
1
driver.find_elements_by_xpath("//*[contains(text(), 'My text')]")
1
Эксперт по компьютерным сетям
 Аватар для Jabbson
5906 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
18.05.2015, 12:55
Python
1
2
3
4
5
6
7
>>> from selenium import webdriver
>>> driver = webdriver.Chrome('/Users/json//PycharmProjects/chromedriver')
>>> driver.get('http://192.168.10.100/qwerty')
>>> if driver.find_element_by_xpath("//html/body/h1").text == "404 - Not Found":
...     print("Всё пропало, шеф!")
...
Всё пропало, шеф!
1
 Аватар для VaLenOK007
4 / 4 / 4
Регистрация: 12.04.2011
Сообщений: 125
18.05.2015, 13:10  [ТС]
Спасибо всем за помощь) После неких танцев с бубном всё заработало. Проблема была в моей невнимательности)
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 16
26.04.2016, 21:25
Цитата Сообщение от TroSer Посмотреть сообщение
можно смотреть в эту сторону
Python
1
driver.find_elements_by_xpath("//*[contains(text(), 'My text')]")
я добавил эту строчку, но как проверить что она работает? ибо скрипт срабатывает даже если я напишу чтонибудь, чего нет на странице
данной проверкой текста я хочу удостоверится, что загрузилась условно верная страница

мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import unittest
from selenium import webdriver
 
class YotubeLogin(unittest.TestCase):
 
    def setUp(self):
        self.driver = webdriver.Firefox()
 
    def test_search_request(self):
        driver = self.driver
        driver.implicitly_wait(10)
        driver.get("https://www.youtube.com/")
        elem = driver.find_element_by_id("masthead-search-term")
        elem.clear()
        elem.send_keys("Portnov Computer School")
        driver.find_element_by_id("search-btn").click()
        driver.find_element_by_xpath("html/body/div[2]/div[4]/div/div[5]/div/div/div/div[1]/div/div[2]/div[1]/ol/li[3]/ol/li[1]/div/div[2]/h3/a").click()
        driver.find_elements_by_xpath("//*[contains(text(), 'portnovschool')]")
0
 Аватар для VaLenOK007
4 / 4 / 4
Регистрация: 12.04.2011
Сообщений: 125
26.04.2016, 21:39  [ТС]
Цитата Сообщение от Bess74 Посмотреть сообщение
я добавил эту строчку, но как проверить что она работает? ибо скрипт срабатывает даже если я напишу чтонибудь, чего нет на странице
данной проверкой текста я хочу удостоверится, что загрузилась условно верная страница

мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import unittest
from selenium import webdriver
 
class YotubeLogin(unittest.TestCase):
 
    def setUp(self):
        self.driver = webdriver.Firefox()
 
    def test_search_request(self):
        driver = self.driver
        driver.implicitly_wait(10)
        driver.get("https://www.youtube.com/")
        elem = driver.find_element_by_id("masthead-search-term")
        elem.clear()
        elem.send_keys("Portnov Computer School")
        driver.find_element_by_id("search-btn").click()
        driver.find_element_by_xpath("html/body/div[2]/div[4]/div/div[5]/div/div/div/div[1]/div/div[2]/div[1]/ol/li[3]/ol/li[1]/div/div[2]/h3/a").click()
        driver.find_elements_by_xpath("//*[contains(text(), 'portnovschool')]")
Вообще можно банальной проверкой сделать.

Python
1
2
3
4
5
6
test_text = driver.find_element_by_id('text-string').text
 
if test_text == u'нужный нам текст':
   True
else:
   False
Можно вызывать исключения через try
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 16
27.04.2016, 07:19
спасибо! я попробую через If

а если говорить о том варианте, которые я из темы взял?
driver.find_elements_by_xpath("//*[contains(text(), 'portnovschool')]")
он вообще рабочий? либо я написал скрипт недоконца, либо не в том смысле пытаюсь его использовать
0
 Аватар для VaLenOK007
4 / 4 / 4
Регистрация: 12.04.2011
Сообщений: 125
27.04.2016, 16:07  [ТС]
Цитата Сообщение от Bess74 Посмотреть сообщение
а если говорить о том варианте, которые я из темы взял?
Его я так и не освоил, например, ибо не углядел его в документации.

Тут можно посмотреть позицию разработчиков на эту тему
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 16
02.05.2016, 21:36
спасибо за ответ!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.05.2016, 21:36
Помогаю со студенческими работами здесь

Поиск данных на странице через Selenium
Добрый день. Недавно начал работать с Selenium WebDriwer, остановился на данной проблеме: Имеется список пользователей к примеру в...

Поиск текста на странице
Всем привет! Подскажите как реализовать Необходимо произвести поиск на странице нескольких фраз, например &quot;Переменная равна:&quot;...

Поиск текста на странице
Здравствуйте, подскажите пож-та, есть ли какая-нибудь софтина для поиска текста в браузера, которая будет работать и висеть в трее, т.е...

Поиск текста на странице
Всем привет! На странице есть такой div: &lt;div id=&quot;errorExplanation&quot;&gt;&lt;ul&gt; &lt;li&gt;Укажите пожалуйста причину в поле Комментарий...

Поиск текста в странице браузера
Требуется помощь в реализации поиска на веб странице c#. Искал по всюду не мог найти. В общем к делу. Есть переменная oooo1.contains...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
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