2011-09-29 24 views
27

Uso il Selenium RC per i test. Ora per eseguire un test di carico, voglio eseguire test case paralleli. C'è un modo per eseguirli senza aprire un browser?Test selenio senza browser

+0

possibile duplicato [E 'possibile nascondere il browser in Selenio RC?] (Http://stackoverflow.com/questions/1418082/is-it-possible-to-hide-the- browser-in-selenium-rc) –

risposta

4

Per impostare su CentOS (fare tutto installazione da root)

Installa pip Scarica https://bootstrap.pypa.io/get-pip.py

python get-pip.py 

Installazione selenio Se si dispone di pip sul sistema, si può semplicemente installare o aggiornare i binding Python: pip install selenio -U

In alternativa, è possibile scaricare la distribuzione sorgente da PyPI (ad esempio selenio 2.53.1.tar.gz), estrarlo, ed eseguire:

python setup.py install 

installare il programma: pyvirtualdisplay

pip install pyvirtualdisplay 

yum install Xvfb libXfont Xorg 

quindi modificare lo script per aggiungere le linee decise entro ** e * *

**from pyvirtualdisplay import Display** 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
from selenium.common.exceptions import NoAlertPresentException 
import unittest, time, re 

classe SeleniumDemo (unittest.TestCase):

def setUp(self): 
    **self.display = Display(visible=0, size=(800, 600)) 
    self.display.start()** 
    self.driver = webdriver.Firefox() 
    self.driver.implicitly_wait(30) 
    self.base_url = "http://www.soastastore.com/" 
    self.verificationErrors = [] 
    self.accept_next_alert = True 
…… 
def tearDown(self):`enter code here` 
    self.driver.quit() 
    ***self.display.stop()*** 
    self.assertEqual([], self.verificationErrors) 
43

Sì. Solo install PhantomJS.

Quindi, modificare questa riga:

driver = webdriver.Firefox()

a:

driver = webdriver.PhantomJS()

Il resto del codice non avrà bisogno di essere cambiato e si aprirà nessun browser.


Per scopi di debug, utilizzare driver.save_screenshot('screen.png') nelle diverse fasi del vostro codice o semplicemente tornare a Firefox di nuovo:

if os.getenv("environment") == "production": 
    driver = webdriver.PhantomJS() 
else: 
    driver = webdriver.Firefox() 
+2

questa dovrebbe essere la risposta –

+0

Le risposte più semplici di solito sono le migliori! Grazie. – hod

0

Seguire sempre la documentazione. Ecco cosa dice selenium doc. Fornisce un standalone jar.

  • Scarica il vaso autonomo. E eseguilo con il comando

    java -jar selenium-server-standalone.jar 
    
  • Ora verrà avviato un server stanalone.

  • Ora imposta il tuo webdriver come sotto e la parte resterà così com'è.

    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True}) 
    
  • Il codice di riepilogo sarà come.

    from selenium import webdriver 
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
    from selenium.webdriver.common.keys import Keys 
    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', 
    desired_capabilities={'browserName': 'htmlunit', 'version': '2', 
    'javascriptEnabled': True}) 
    driver.get("http://www.python.org") 
    assert "Python" in driver.title 
    elem = driver.find_element_by_name("q") 
    elem.clear() 
    elem.send_keys("pycon") 
    elem.send_keys(Keys.RETURN) 
    assert "No results found." not in driver.page_source 
    driver.close() 
    
Problemi correlati