Найти - Пользователи
Полная версия: selenium без х-ов
Начало » Python для новичков » selenium без х-ов
1 2
gelius
На пробном скрипте:
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’
Ему обязательно нужны х-ы или эмулятор х-ов? Зачем он просит номер терминала?
Griffon
А как без иксов откроется фаерфокс?
gelius
Griffon
А как без иксов откроется фаерфокс?
А если другой вебдрайвер взять? Он вообще умеет без иксов работать?
lorien
Ставим xvfb, далее запускаем его:

Xvfb :0 -screen 0 1024x768x16

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

    
import os
os.environ['DISPLAY'] = ':0.0'
gelius
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
Явно не отрабатываеи до конца.
И еще вопрос. У меня одновременно работает несколько копий скрипта. Каждой нужно присвоить свой номер дисплея?
lorien
> У меня все стопорится на:
Вы запускаете Xvfb и не получаете обратно управление в консоли? Так и должно быть, он запустился и ждёт, когда к нему будут обращаться GUI программы.

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

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

gelius
Т.Е. Я правильно понимаю, что один номер Xvfb можно использовать для нескольких задач одновременно?
lorien
По-моему, попробовать проще, чем сидеть и ждать ответа на форуме. Вы так не думаете?
gelius
lorien
По-моему, попробовать проще, чем сидеть и ждать ответа на форуме. Вы так не думаете?
Пробую. Просто не очень понимаю что происходит. По моему отрабатывают только два процесса из семи, а почему так не ясно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB