Настройка selenium для использования пользовательского профиля, но он продолжает открываться по умолчанию
Я пытаюсь использовать python и selenium для автоматизации некоторых задач в firefox. Когда я загружаю файл, появляется всплывающее окно с вопросом, Хотите ли вы открыть или сохранить, и флажок делать это каждый раз с таким файлом. Я обнаружил, что флажок не работает, если вы не установите Add on Web Page Fixer. У меня это установлено нормально, но когда я использую python + selenium, он использует профиль без дополнений.
интернет поручил мне создать другой профиль, закрытие Firefox, открытие / приложения / утилиты, затем введите команду:
/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)
ошибка: планирование семьи.set_preference("браузер.скачать.реж",функция getcwd()) NameError: имя 'getcwd' не определено
любые идеи о том, что я делаю неправильно? Спасибо!
p.s. Я использую 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)
3 ответов
ошибка: fp.set_preference("браузер.скачать.dir", getcwd ()) NameError: имя 'getcwd' не определено
getcwd()
Не определен. Поэтому я предполагаю, что вы хотите getcwd
С os
модуль:
добавить: import os
, а затем вызвать с os.getcwd()
.
или вы можете просто добавить импорт для этой функции:
from os import getcwd
ваш пример с правильным импортом включен:
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', 'text/csv/xls')
driver = webdriver.Firefox(profile)
Я сделал следующее:
или:
Linux:ls -d /home/$USER/.mozilla/firefox/*.default/
чтобы увидеть каталоги профилей пользователей
Mac:ls -d ~/Library/Application\ Support/Firefox/Profiles/*
выход:
/home/jmunsch/.mozilla/firefox/xfoyzfsb.default/
/home/jmunsch/.mozilla/firefox/yxjwk1py.default/
чтобы загрузить пользовательский профиль пользователя, я запустил создание профиля в firefox, а затем сделал следующее с кодом python selenium webdriver:
def setUp(self):
self.profile = webdriver.FirefoxProfile('/home/jmunsch/.mozilla/firefox/yxjwk1py.default')
self.driver = webdriver.Firefox(self.profile)
Информация О Системе:
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources;pkg_resources.get_distribution("selenium").version
jmunsch@NE-522:~/Desktop/work$ firefox --version
Mozilla Firefox 26.0
также Примечание!--27--> @Кори чтобы вручную установить профиль
все конфигурационные файлы можно найти в разделе about:config
:
profile.set_preference('browser.download.folderList', 2)
вы должны добавить это:
profile.set_preference("browser.helperApps.neverAsk.openFile",
"text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml")
это работает!