Перейти к содержимому

Фотография

selenium webdriver + python возвращает ошибку


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 webst

webst

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:ФИО

Отправлено 25 июня 2012 - 13:14

Есть centos 6.2, python 2.6, Python bindings for Selenium установленный через pip.
Нужно использовать selenium без x-ов.
Пример с оф. странички(http://pypi.python.org/pypi/selenium), как и любые другие вариации:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
assert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("seleniumhq" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the API
try:
    browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")
except NoSuchElementException:
    assert 0, "can't find seleniumhq"
browser.close()
запускаемый через xvfb(xvfb-run python example.py) выдает ошибки:
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    browser = webdriver.Firefox()
  File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 51, in __init__
    self.binary, timeout),
  File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
    self.binary.launch_browser(self.profile)
  File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser
    self._wait_until_connectable()
  File "/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 81, in _wait_until_connectable
    self._get_firefox_output())
selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Xlib:  extension "RANDR" missing on display ":1108.0".\nfailed to create drawable\n\n(firefox:2030): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type=\'PangoRenderFc\', script=\'common\'\n*** LOG addons.xpi: startup\n*** LOG addons.xpi: checkForChanges\n*** LOG addons.xpi: Opening database\n*** LOG addons.xpi: No changes found\nGConf Error: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: /bin/dbus-launch terminated abnormally without any error message)\nFailed to dlopen /usr/lib/libX11.so.6\ndlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32\n'
С использованием pyvirtualdisplay аналогично.
  • 0

#2 Azur

Azur

    Новый участник

  • Members
  • Pip
  • 54 сообщений
  • ФИО:Александр Згнетов
  • Город:Омск

Отправлено 14 августа 2012 - 03:49

Для второго варианта нужно прописать:
from pyvirtualdisplay import Display
...
display = Display(visible=0, size=(1024, 768))
display.start()
...
display.stop()

При удаленном запуске надо указывать номер виртуального дисплея.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных