2011-09-29 23 views
27

Uso Selenium RC para realizar pruebas. Ahora para realizar una prueba de carga, quiero ejecutar casos de prueba paralelos. ¿Hay alguna forma de ejecutarlos sin abrir un navegador?Prueba de selenio sin navegador

+0

posible duplicado de [¿Es posible ocultar el navegador en Selenio RC?] (Http://stackoverflow.com/questions/1418082/is-it-possible-to-hide-the- browser-in-selenium-rc) –

Respuesta

4

instalar en Centos (hacer toda la instalación como root)

instalar pip Descargar https://bootstrap.pypa.io/get-pip.py

python get-pip.py 

Instalación de selenio Si tiene pip en su sistema, sólo tiene que instalar o actualizar los enlaces de Python: pip instalar el selenio -U

Alternativamente, se puede descargar la distribución fuente de PyPI (por ejemplo, selenio 2.53.1.tar.gz), descomprimirlo, y ejecute:

python setup.py install 

instalar el programa: pyvirtualdisplay

pip install pyvirtualdisplay 

yum install Xvfb libXfont Xorg 

a continuación, modificar la secuencia de comandos para agregar las líneas en negrita dentro ** y * *

**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 

clase 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.

A continuación, cambie esta línea:

driver = webdriver.Firefox()

a:

driver = webdriver.PhantomJS()

no va a ser necesario cambiar el resto de su código y no hay ningún navegador se abrirá.


Para propósitos de depuración, utilice driver.save_screenshot('screen.png') en diferentes etapas de su código o simplemente cambiar de nuevo a Firefox de nuevo:

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

esta debería ser la respuesta –

+0

¡Las respuestas más simples suelen ser las mejores! Gracias. – hod

0

Siempre siga la Documentación. Esto es lo que dice selenium doc. Proporciona un standalone jar.

  • Descargue la jarra standalone. Y ejecutarlo con el comando

    java -jar selenium-server-standalone.jar 
    
  • Ahora verá iniciarse un servidor stanalone.

  • Ahora configure su controlador de página web como a continuación y la parte de reposo será como está.

    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True}) 
    
  • El código de resumen será similar.

    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() 
    
Cuestiones relacionadas