【问题标题】:'Options' object has no attribute 'set_preference' error using ChromeOptions in Selenium ChromeDriver and Chrome through Python'Options' 对象没有属性 'set_preference' 错误在 Selenium ChromeDriver 和 Chrome 中通过 Python 使用 ChromeOptions
【发布时间】:2019-06-12 09:07:21
【问题描述】:

我正在尝试使用 selenium 和 python 单击“下载”按钮来下载 pdf。但是在运行 Chrome 和我为 chrome 浏览器开发的完整测试时遇到上述错误。

driver.find_element_by_xpath("/html/body/app-root/app-full-layout/div/div[2]/div/div/div/app-list/section/div[2]/div/div[2]/div[2]/div/div[2]/button").click()
time.sleep(7)
options = Options()
options.set_preference("browser.download.folderList", 0)
options.set_preference("browser.download.manager.showWhenStarting", False)
options.set_preference("browser.download.dir", "/DFS")
options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream,application/pdf")
driver = driver.Chrome(chrome_options=self.options)

预期执行此代码并下载 pdf 文件

【问题讨论】:

  • 您希望代码即使在引用不存在的属性时也能运行?或者您希望options 具有属性set_preference?这是为什么呢?

标签: python selenium google-chrome selenium-webdriver selenium-chromedriver


【解决方案1】:

selenium.webdriver.chrome.options Class 不包含方法set_preference()

set_preference(name, value) 来自selenium.webdriver.firefox.options

因此,在使用 ChromeDriverChromeChromeOptions 时,您需要使用 add_argument(argument) 方法,如下所示:

options = webdriver.ChromeOptions()
options.add_argument("--safebrowsing-disable-download-protection")
options.add_argument("safebrowsing-disable-extension-blacklist")
driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')

您可以在How to download XML files avoiding the popup This type of file may harm your computer through ChromeDriver and Chrome using Selenium in Python找到相关讨论

【讨论】:

  • 如果我知道你可以添加选项add_experimental_option,你可以在那里添加首选项...
猜你喜欢
  • 2022-01-14
  • 2020-05-23
  • 1970-01-01
  • 2012-10-06
  • 2016-10-30
  • 2017-08-27
  • 2023-01-12
  • 2021-05-28
  • 2018-09-28
相关资源
最近更新 更多