Я пытаюсь использовать python и selenium для автоматизации некоторых задач в firefox. Когда я загружаю файл, появляется всплывающее окно с вопросом, хотите ли вы открыть или сохранить, и флажок для этого каждый раз с таким видом файла. Я обнаружил, что флажок не работает, если вы не установите добавление на веб-страницу Fixer. У меня это установлено нормально, но когда я использую python + selenium, он использует профиль без добавления.
Интернет дал мне указание создать другой профиль, закрыв Firefox, открыв/Приложения/Утилиты, а затем набрав команду:
/Applications/Firefox.app/Contents/MacOS/firefox-bin -p
Затем создаю новый профиль, который я буду использовать с селеном. Я установил имя и изменил имя папки. Имя профиля - "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: имя 'getcwd' не определено
Любые идеи о том, что я делаю неправильно? Спасибо!
p.s. Я использую mac os x 10.8.2, python 2.7, firefox 20
РЕШЕНИЕ, ПРЕДУСМОТРЕННОЕ Кори Гольдбергом. Это должно работать для всех версий 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)