python - openqa - Pruebas de selenio sin navegador
selenium library (4)
Yo uso Selenium RC para probar. Ahora para realizar una prueba de carga, quiero ejecutar casos de prueba paralelos. ¿Hay alguna forma de ejecutarlos sin abrir un navegador?
Para configurar 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 un pip en su sistema, simplemente puede instalar o actualizar los enlaces de Python: pip install -U selenium
Alternativamente, puede descargar la distribución fuente de PyPI (por ejemplo, selenium-2.53.1.tar.gz), desarchivarla y ejecutar:
python setup.py install
instalar el programa: pyvirtualdisplay
pip install pyvirtualdisplay
yum install Xvfb libXfont Xorg
A continuación, modifique su secuencia de comandos para agregar las líneas en negrita dentro de ** 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)
Puede ejecutar Selenium sin cabeza, eche un vistazo a esta pregunta / respuesta: ¿Es posible ocultar el navegador en Selenium RC?
Especialmente para las pruebas de carga de rendimiento, debería echar un vistazo a Apache JMeter .
Sí. Simplemente instale PhantomJS .
Luego, cambia esta línea:
driver = webdriver.Firefox()
a:
driver = webdriver.PhantomJS()
No será necesario cambiar el resto del código y no se abrirá ningún navegador.
Para fines de depuración, use driver.save_screenshot(''screen.png'')
en diferentes pasos de su código o simplemente vuelva a Firefox nuevamente:
if os.getenv("environment") == "production":
driver = webdriver.PhantomJS()
else:
driver = webdriver.Firefox()
Siempre siga la Documentación. Esto es lo que dice el doc . De selenio . Proporciona un frasco independiente .
Descargue el jar independiente. Y ejecutarlo con comando
java -jar selenium-server-standalone.jar
Ahora verá un servidor stanalone iniciado.
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()