4

我目前正在开发一个使用 Selenium 的 python (3.7) CLI 程序,它将被不同的人群使用。

我遇到的问题如下:

对于在Chrome中设置“无头”等选项,我使用

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path,options=chrome_options)

对于Firefox,代码如下所示:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.headless = True
driver = webdriver.Firefox(executable_path,options=options)

所以我想知道是否有一种方法可以规范化这些设置/优雅地处理不同的浏览器,或者我是否必须将所有内容基本上编写 2 次甚至 3 次(可能会添加 Safari 或 Opera)?

4

1 回答 1

3

根据Selenium Python客户端v3.12.0更改日志

  • 弃用 Optionsset_headless方法以支持属性设置器

因此,如果您使用 Selenium WebDriver v 3.12.0或更高版本,则chrome_options.add_argument("--headless")需要使用headless属性设置器,如下所示:

options.headless = True

否则,您可能会看到DeprecationWarning如下:

DeprecationWarning: use setter for headless property instead of set_headless opts.set_headless(headless=True)

您可以在DeprecationWarning: use setter for headless property instead of set_headless opts.set_headless(headless=True) using Geckodriver and Selenium in Python中找到相关的详细讨论


参考

一些相关的讨论:

于 2020-08-05T11:11:30.743 回答