31 Mayıs 2011, Salı
Nasıl Xvfb Selenyum çalıştırabilirim?
Üzerinde EC2 örneği ediyorum. GUİ var.
$pip install selenium
$sudo apt-get install firefox xvfb
O zaman bu:
$Xvfb :1 -screen 0 1024x768x24 2>&1 >/dev/null &
$DISPLAY=:1 java -jar selenium-server-standalone-2.0b3.jar
05:08:31.227 INFO - Java: Sun Microsystems Inc. 19.0-b09
05:08:31.229 INFO - OS: Linux 2.6.32-305-ec2 i386
05:08:31.233 INFO - v2.0 [b3], with Core v2.0 [b3]
05:08:32.121 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
05:08:32.122 INFO - Version Jetty/5.1.x
05:08:32.123 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
05:08:32.124 INFO - Started HttpContext[/selenium-server,/selenium-server]
05:08:32.124 INFO - Started HttpContext[/,/]
05:08:32.291 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@1186fab
05:08:32.292 INFO - Started HttpContext[/wd,/wd]
05:08:32.295 INFO - Started SocketListener on 0.0.0.0:4444
05:08:32.295 INFO - Started org.openqa.jetty.jetty.Server@1ffb8dc
Her şey şimdi çalışmalıdır, harika değil mi?
Kodumu çalıştırdığımda:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get("http://www.yahoo.com")
.
Error: cannot open display: :0
CEVAP
10 HAZİRAN 2011, Cuma
PyVirtualDisplay (Xvfb için bir Python sarıcı) başsız WebDriver testleri çalıştırmak için kullanabilirsiniz.
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
# now Firefox will run in a virtual display.
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()
display.stop()
Ayrıca benzer bir modül ama hiçbir dış bağımlılıkları vardır () xvfbwrapper kullanabilirsiniz:
from xvfbwrapper import Xvfb
vdisplay = Xvfb()
vdisplay.start()
# launch stuff inside virtual display here
vdisplay.stop()
ya da daha iyisi, içerik yöneticisi olarak kullanın:
from xvfbwrapper import Xvfb
with Xvfb() as xvfb:
# launch stuff inside virtual display here.
# It starts/stops in this code block.
Bunu Paylaş:
Nasıl Windows üzerinde Redis çalıştıra...
Nasıl yeni bir iş parçacığı kod basit ...
Nasıl Git Log belirli bir şube için sa...
Nasıl Linux kabuk geçerli farklı bir ç...
Nasıl olduğunu GÖRDÜM 7 ile Mac OS X ü...