select_by_value - switch_to selenium python
Capturas de pantalla automáticas cuando la prueba falla por Selenium Webdriver en Python (3)
Quiero capturar capturas de pantalla automáticamente si mis pruebas de disco web fallaron (cualquier excepción o error de aserción). Estoy usando Python unittest y Selenium Webdriver. ¿Alguien tiene alguna solución a este problema?
Para mí ayuda esta solución:
def teardown_method(self, method):
"""Driver elimination"""
if sys.exc_info():
allure.attach(''screenshot'', self.driver.get_screenshot_as_png(), type=AttachmentType.PNG)
self.driver.quit()
pass
hacer algunas cosas de disco web en Firefox ... guardar captura de pantalla en cualquier excepción a un archivo de imagen con fecha:
from datetime import datetime
from selenium import webdriver
browser = webdriver.Firefox()
try:
# do some webdriver stuff here
except Exception as e:
print e
now = datetime.now().strftime(''%Y-%m-%d_%H-%M-%S'')
browser.get_screenshot_as_file(''screenshot-%s.png'' % now)
Otro método sería agregar lo siguiente a su método tearDown
:
if sys.exc_info()[0]:
test_method_name = self._testMethodName
self.driver.save_screenshot("Screenshots/%s.png" % test_method_name)
Esto supondría una clase de prueba como esta:
class SeleniumTest(unittest2.TestCase):
...
def tearDown(self):
if sys.exc_info()[0]:
test_method_name = self._testMethodName
self.driver.save_screenshot("Screenshots/%s.png" % test_method_name)
super(SeleniumTest, self).tearDown()
def test_1(self):
...
def test_2(self):
...