Почему при запуске Selenium с помощью PyVirtualDisplay с веб-сайта Django появляется ошибка с разрешениями gnome?

Я пытаюсь использовать привязки Python Selenium для программного взаимодействия с веб-сайтами, как часть веб-сайта Django.

Поскольку мой код Selenium запускается как часть веб-сайта Django, по умолчанию (если я правильно понимаю) нет браузера, доступного для использования. Поэтому я пытаюсь использовать PyVirtualDisplay для запуска Xvfb до запуска моего кода Selenium.

Вот мой код:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=False, size=(800, 600))
display.start()

browser = webdriver.Firefox()

Когда я захожу по SSH на свой сервер (работаю с Debian Squeeze, Python 2.6.6, Selenium 2.25, PyVirtualDisplay 0.1.0), запускаю консоль Python от своего имени и печатаю приведенный выше код, все работает нормально.

Тем не менее, когда я пытаюсь запустить этот код с моего сайта Django, или использовать su запустить консоль Python как www-data (я считаю, что пользователь, от имени которого запускается Django), я получаю следующую ошибку:

selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: 
(process:2963): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.
    Xlib:  extension "RANDR" missing on display ":1082.0".

    (firefox-bin:2963): libgnomevfs-WARNING **: Unable to create ~/.gnome2 directory: Permission denied
    Could not create per-user gnome configuration directory `/var/www/.gnome2/\': Permission denied'

Я немного новичок с Xvfb и Linux, поэтому я не совсем уверен, что я делаю неправильно.

1 ответ

Решение

Я считаю, что это простая ошибка разрешений.

На Ubuntu Apache домашний каталог, как видите, есть /var/wwwЯ думаю, вам просто нужно убедиться, что у apache есть доступ на запись в его домашнюю директорию. У меня по умолчанию на Ubuntu 12.04 есть

daniel@daniel:/var/www$ ls -la
total 12
drwxr-xr-x  2 root root 4096 Sep 15 11:43 .
drwxr-xr-x 14 root root 4096 Oct  2 08:54 ..
-rw-r--r--  1 root root  177 Sep 15 11:43 index.html

www-data не имеет права на запись в свой домашний каталог!

Возможно, вы могли бы иметь www-данные, владеющие каталогом, или создать группу администраторов с правами на запись и добавить www-data к этому?

Некоторые другие темы о предоставлении доступа к записи /var/www https://superuser.com/questions/19318/how-can-i-give-write-access-of-a-folder-to-all-users-in-linux

Другие вопросы по тегам