Современная Веб-Автоматизация при Помощи Python и Selenium

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Насчет статьи https://python-scripts.com/web-automation-with-python-and-selenium
Внизу, в комментариях к ней описал проблему.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Испытал. Браузер не запускается.
Он и не должен запускаться (headless режим же).
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
А за счет чего понятно должно быть, что проверка успешна?
В коде есть проверка assert opts.headless # без графического интерфейса.
Вы можете вывести какие-нибудь данные в консоль для проверки, например заголовок страницы:
Python:
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
import time


opts = Options()
opts.headless = True
assert opts.headless  # без графического интерфейса.

browser = Firefox(options=opts)
browser.get('https://duckduckgo.com')
title = browser.find_element_by_tag_name('title')
title_text = title.get_attribute('innerHTML')
print(title_text)  # DuckDuckGo — Максимум конфиденциальности, минимум усилий.
time.sleep(1)
browser.quit()
 
  • Мне нравится
Реакции: pums

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Проверил уже другим кодом.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот тут есть решение: ссылка.
 
  • Мне нравится
Реакции: pums

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
А как должен выглядеть полный код файла?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Примерно так:
Python:
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options

opts = Options()
opts.headless = True
assert opts.headless # без графического интерфейса.

browser = Firefox(options=opts)
browser.get('https://duckduckgo.com')
 

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Испытал. Браузер не запускается.
 

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Ещё сразу задам вопрос. Какой должен быть полный код с этими фрагментами?
Python:
search_form = browser.find_element_by_id('search_form_input_homepage')
search_form.send_keys('real python')
search_form.submit()

Вы найдете поисковую форму, используя метод send_keys для заполнения, затем метод submit для выполнения поиска для «Real Python». Вы можете проверить результат:
Python
results = browser.find_elements_by_class_name('result')
print(results[0].text)
   
results = browser.find_elements_by_class_name('result')
print(results[0].text)

Результат:
Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
https://realpython.com
   
Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
https://realpython.com

Похоже, все работает. Чтобы избежать появления невидимых экземпляров браузера, нужно закрыть объект браузера перед окончанием сессии в Python:
Python
browser.close()
quit()

   
browser.close()
quit()
 

Форум IT Специалистов