提问者:小点点

选项对象没有属性set_preference错误,使用Selenium ChromeDriver中的ChromeOptions并ChromePython


我试图用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文件


共1个答案

匿名用户

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

set_preference(name, value)来自selenium.webdriver.fire fox.option类。

因此,在使用ChromeOptions for ChromeDriver和Chrome时,您需要使用add_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')

您可以在如何下载XML文件避免弹出窗口中找到相关讨论这种类型的文件可能会通过ChromeDriver损害您的计算机,并Chrome在Python中使用Selenium