LINUX.ORG.RU

webdriver не запускается с заранее подготовленным профилем.

 , ,


0

1

Добрый день, уважаемые Лоровцы! У меня есть два скрипта, которые делают следующее:

- первый скрипт запускает браузер(Firefox), и перемещает его профиль с помощью shutil в нужный мне каталог, после этого делает quit либо close браузера

- второй скрипт запускает браузер с этим профилем, который был скопирован.

И как раз-таки проблема в том, что он не запускается. Если же пробовать просто «firefox -profile ./профиль --no-remote», то всё запускается, и виден вывод в stderr какого-то лога. Через selenium же - только ошибки.

Привожу лог:

>>> from selenium import webdriver
>>> pfdir = './firefox_prof'
>>> profile = webdriver.FirefoxProfile(profile_directory=pfdir)
>>> browser = webdriver.Firefox(profile)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
    self.binary, timeout),
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 45, in __init__
    self.profile.add_extension()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_profile.py", line 92, in add_extension
    self._install_extension(extension)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_profile.py", line 281, in _install_extension
    shutil.copytree(addon, addon_path, symlinks=True)
  File "/usr/lib/python2.7/shutil.py", line 177, in copytree
    os.makedirs(dst)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 17] Файл существует: '/tmp/tmp1HSlXL/webdriver-py-profilecopy/extensions/fxdriver@googlecode.com'
>>> 

Вопрос: что я делаю не так? Всех нюансов работы с Selenium я пока что не знаю, так что прошу меня натолкнуть на истинный пусть. Всем заранее спасибо.

Я понимаю, что selenium пытается создать отдельный(кажется) профиль, но почему?

blablacon ()

И на самом деле хорошо бы было, если бы кто-нибудь подсказал мне, как правильно отобрать у selenium профиль браузера. Что ни гуглил - всё какая-то фигня. Пришлось городить огород такой последовательности: Запускаем браузер делаем все необходимые изменения в профиле(для этого я их и сохраняю) Находим в каталоге /tmp/ каталог, начинающийся с tmp*(вот такие адские костыли. Если там будет что-то ещё, начинающееся с tmp - всё коту под хвост). Потом перемещаем его(move) в нужный нам каталог, и закрываем браузер. Всё вроде перемещается, а заново из Селениума работать не хочет. Если есть какой-то уже готовый механизм, или фича в самом Селениуме, которую я не смогу найти - помогите пожалуйста.

blablacon ()

Запускаешь сервер:

java -jar selenium-server-standalone-2.38.0.jar -Dwebdriver.firefox.profile="selen"

В коде подсоединяешься к серверу, он использует данный профиль. Если запускать сервер без опций, будет генериться временный профиль и это правильно с точки зрения чистоты тестовых данных.

Lordwind ★★★★★ ()
Последнее исправление: Lordwind (всего исправлений: 1)
Ответ на: комментарий от blablacon
self.driver = webdriver.Firefox(webdriver.FirefoxProfile("~/.mozilla/firefox/y09hlcva.selen"))

сорри, не посмотрел на язык, устал уже

Lordwind ★★★★★ ()
Последнее исправление: Lordwind (всего исправлений: 1)

Возможно в том профиле, который ты собираешься использовать, уже добавлен экстеншин вебдрайвера.

Попробуй просто запустить с этим профилем фаерфокс и удалить экстеншин, если он есть.

shy ()
Ответ на: комментарий от shy

Удалил - и ничего. :( Может кто-нибудь ещё что-нибудь знает по этому поводу?

gIiIjony ()

Так что, господа, кто-нибудь знает как можно заставить selenium пользовать какой-нибудь отдельный профиль?

blablacon ()
Ответ на: комментарий от blablacon

Такая же беда. Никак не подтягивается профиль...

profile = webdriver.FirefoxProfile("тут путь к профилю, пробовал разные")
driver = webdriver.Firefox(profile)


На запущенном через selenium firefox проверяю путь к текущему профилю, загружен тот, который лежит tmp…
Что за ерунда? Профиль не подтягивается… По какой причине это может происходить?
Перечитал кучу информации. Никакого результата. 

Третий день мучаюсь…
ArtemKrass ()

Re: Такая же беда. Никак не подтягивается профиль...

На java получилось подтянуть профиль так: ProfilesIni allProfiles = new ProfilesIni(); FirefoxProfile profile = allProfiles.getProfile(«Selenium_Profile»); WebDriver driver = new FirefoxDriver(profile);

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.