Уведомления

Группа в Telegram: @pythonsu

#1 Март 18, 2013 02:32:23

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

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()
Вылазит ошибка:
Traceback (most recent call last):
File “test.py”, line 15, in <module>
browser = webdriver.Firefox()
File “/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py”, line 58, 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 48, in launch_browser
self._wait_until_connectable()
File “/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py”, line 90, 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: Error: no display specified\n’
# python sl.py
Traceback (most recent call last):
File “sl.py”, line 6, in <module>
browser = webdriver.Firefox() # Get local session of firefox
File “/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py”, line 58, 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 48, in launch_browser
self._wait_until_connectable()
File “/usr/lib/python2.6/site-packages/selenium/webdriver/firefox/firefox_binary.py”, line 90, 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: Error: no display specified\n’
Ему обязательно нужны х-ы или эмулятор х-ов? Зачем он просит номер терминала?

Офлайн

#2 Март 19, 2013 12:05:40

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

selenium без х-ов

А как без иксов откроется фаерфокс?



Офлайн

#3 Март 19, 2013 14:13:57

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

selenium без х-ов

Griffon
А как без иксов откроется фаерфокс?
А если другой вебдрайвер взять? Он вообще умеет без иксов работать?

Офлайн

#4 Март 19, 2013 22:17:37

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

selenium без х-ов

Ставим xvfb, далее запускаем его:

Xvfb :0 -screen 0 1024x768x16

Далее в питон коде пишем:

    
import os
os.environ['DISPLAY'] = ':0.0'

Отредактировано lorien (Март 19, 2013 22:18:21)

Офлайн

#5 Март 20, 2013 01:17:23

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

selenium без х-ов

lorien
Ставим xvfb, далее запускаем его:
А как грамотно запустить xvfb? Например при запуске в консоли под рутом:
Xvfb :0 -screen 0 1024x768x16
У меня все стопорится на:
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Явно не отрабатываеи до конца.
И еще вопрос. У меня одновременно работает несколько копий скрипта. Каждой нужно присвоить свой номер дисплея?

Офлайн

#6 Март 20, 2013 08:22:54

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

selenium без х-ов

> У меня все стопорится на:
Вы запускаете Xvfb и не получаете обратно управление в консоли? Так и должно быть, он запустился и ждёт, когда к нему будут обращаться GUI программы.

> И еще вопрос. У меня одновременно работает несколько копий скрипта. Каждой нужно присвоить свой номер дисплея?
Какой хотите, такой и присваивайте.

Офлайн

#7 Март 20, 2013 09:40:47

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

selenium без х-ов

На самом деле всё проще. KVM + libvirt и нет проблем с иксами -- пусть себе крутятся.



Офлайн

#8 Март 22, 2013 16:43:10

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

selenium без х-ов

Т.Е. Я правильно понимаю, что один номер Xvfb можно использовать для нескольких задач одновременно?

Офлайн

#9 Март 22, 2013 17:20:25

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

selenium без х-ов

По-моему, попробовать проще, чем сидеть и ждать ответа на форуме. Вы так не думаете?

Офлайн

#10 Март 22, 2013 17:30:16

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

selenium без х-ов

lorien
По-моему, попробовать проще, чем сидеть и ждать ответа на форуме. Вы так не думаете?
Пробую. Просто не очень понимаю что происходит. По моему отрабатывают только два процесса из семи, а почему так не ясно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version