selenium.webdriver.firefox.options - о чем это? - PullRequest
0 голосов
/ 12 октября 2018

Я смотрю на этот код:

#! python3
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
opts = Options()
opts.set_headless()
assert opts.headless # Operating in headless mode
browser = Firefox(options=opts)
browser.get('https://duckduckgo.com')

источник: https://realpython.com/modern-web-automation-with-python-and-selenium/

идея в том, чтобы вызвать браузер без монитора, но я не понимаю логику этого кода,Что такое «опции» и что такое «опции»?Что они точно делают?что означает options=opts? 1008 *

Теперь пытаемся запустить этот код, и веб-страница duckduckgo не откроется.Есть идеи почему?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
import time

#--| Setup
options = Options()
options.add_argument("--headless")
caps = webdriver.DesiredCapabilities().FIREFOX
caps["marionette"] = True
browser = webdriver.Firefox(firefox_options=options, capabilities=caps, executable_path=r"geckodriver.exe")
#--| Parse
browser.get('https://duckduckgo.com')
logo = browser.find_elements_by_css_selector('#logo_homepage_link')
print(logo[0].text)

этот код работает (выдает вывод О DuckDuckGo ).Мне сказали, что opts.set_headless() устарело, может быть, поэтому оно не дало мне никакого результата.

0 голосов
/ 12 октября 2018

Options - это класс в пакете селенового firefox webdriver.opts является экземпляром класса Options, созданным для программы.

Когда код говорит:

opts = Options()

Python создает экземпляр класса и использует переменную opts в качестве доступаточка.

Когда в коде написано:

opts.set_headless()

Python обновляет экземпляр Options, чтобы сохранить информацию «пользователь этого хочет запустить автономный экземпляр браузера»

Когда код говорит:

browser = Firefox(options=opts)

Python создает экземпляр класса Firefox и отправляет ему переменную opts для настройки нового экземпляра.В этом случае единственная опция, которая была изменена из значений по умолчанию, - это флаг без заголовка.

...