我正在尝试使用 python 和 selenium 来自动化 firefox 中的一些任务。当我下载文件时,会弹出询问您是否要打开或保存文件,并且每次使用此类文件时都会出现一个复选框。我发现除非您在 Web Page Fixer 上安装插件,否则该复选框不起作用。我已经正常安装了,但是当我使用 python + selenium 时,它使用没有附加组件的配置文件。
互联网指示我通过关闭 Firefox,打开 /Applications/Utilities,然后键入命令来创建另一个配置文件:
/Applications/Firefox.app/Contents/MacOS/firefox-bin -p
然后,我创建了一个将与 selenium 一起使用的新配置文件。我设置名称并更改文件夹名称。配置文件名称是“PTI_Auto_Profile”。文件夹路径显示如下:
/users/User/Library/Application Support/Firefox/Profiles/Selenium/
当我完成时。我单击“启动 Firefox”,我的终端屏幕上出现以下错误。
2013-04-11 11:57:30.422 firefox-bin[2248:707] invalid drawable
conf-room:~ User$ 2013-04-11 11:58:00.350 firefox-bin[2251:303] invalid drawable
我试过以下没有成功。
profile = webdriver.FirefoxProfile(os.path.expanduser("~/Library/Application Support/Firefox/Profiles/Selenium/"))
driver = webdriver.Firefox(firefox_profile=profile)
没有错误,默认用户。
profile = webdriver.FirefoxProfile(os.path.expanduser("~/Library/Application Support/Firefox/Profiles/Selenium/"))
driver = webdriver.Firefox(profile)
没有错误,默认用户。
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir",getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv/xls")
driver = webdriver.Firefox(firefox_profile=fp)
错误:fp.set_preference("browser.download.dir",getcwd()) NameError: name 'getcwd' is not defined
关于我做错了什么的任何想法?谢谢!
ps 我使用的是 mac os x 10.8.2、python 2.7、firefox 20
Corey Goldberg 提供的解决方案。这应该适用于所有 excel 版本。
import os
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/vnd.ms-excel'))
driver = webdriver.Firefox(profile)