selenium.webdriver.firefox.options-它是关于什么的?

时间:2018-10-11 22:59:37

标签: python python-3.x selenium webdriver options

我正在看这段代码:

#! 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代表什么?

现在尝试运行此代码,网页duckduckgo将无法打开。知道为什么吗?

2 个答案:

答案 0 :(得分:3)

Options是Selenium firefox Webdriver软件包中的类。 opts是为程序实例化的Options类的实例。

当代码显示:

opts = Options()

Python创建该类的实例,并使用opts变量作为访问点。

当代码显示:

opts.set_headless()

Python正在更新Options的实例,以存储信息“此用户希望启动浏览器的无头实例”

当代码显示:

browser = Firefox(options=opts)

Python正在创建Firefox类的实例,并向其发送opts变量以配置新实例。在这种情况下,唯一已更改为默认值的选项是headless标志。

答案 1 :(得分:0)

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()已过时,也许这就是为什么它没有给我任何结果的原因。