我正在看这段代码:
#! 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将无法打开。知道为什么吗?
答案 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()
已过时,也许这就是为什么它没有给我任何结果的原因。