Подтвердить что ты не робот

Установка селена на использование настраиваемого профиля, но он продолжает открываться по умолчанию

Я пытаюсь использовать 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)
4b9b3361

Ответ 1

Ошибка: fp.set_preference ( "browser.download.dir", getcwd()) NameError: name '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)

Ответ 2

Я сделал следующее:

Open Profile Directory

Или:

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, а затем выполнил следующее с кодом webdriver selenium python:

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

[email protected]:~/Desktop/work$ firefox --version
Mozilla Firefox 26.0

также обратите внимание

@Corey ответ на ручной настройку профиля

Все конфигураторы можно найти в разделе about:config:

profile.set_preference('browser.download.folderList', 2)

Ответ 3

Вы должны добавить это:

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")

Это работает!