Al tomar una captura de pantalla usando Selenium Webdriver en Windows con python, la captura de pantalla se guarda directamente en la ruta del programa, ¿hay alguna manera de guardar el archivo .png en un directorio específico?Webdriver Screenshot
Respuesta
Uso driver.save_screenshot('/path/to/file')
o driver.get_screenshot_as_file('/path/to/file')
:
import selenium.webdriver as webdriver
import contextlib
@contextlib.contextmanager
def quitting(thing):
yield thing
thing.quit()
with quitting(webdriver.Firefox()) as driver:
driver.implicitly_wait(10)
driver.get('http://www.google.com')
driver.get_screenshot_as_file('/tmp/google.png')
# driver.save_screenshot('/tmp/google.png')
entiendo que busca una respuesta en Python, pero aquí es cómo se podría hacerlo en rubí ..
http://watirwebdriver.com/screenshots/
Si eso solo funciona guardando solo en el directorio actual. Primero asignaría la imagen a una variable y luego guardaría esa variable en el disco como un archivo PNG.
por ejemplo:
image = b.screenshot.png
File.open("testfile.png", "w") do |file|
file.puts "#{image}"
end
donde b es la variable de navegador utilizado por WebDriver. Tengo la flexibilidad de proporcionar una ruta absoluta o relativa en "File.open" para que pueda guardar la imagen en cualquier lugar.
sí, tenemos una manera de conseguir la extensión de la pantalla .png usando pitón WebDriver
utilizar por debajo de código si trabaja en webriver.it Python es muy simple.
driver.save_screenshot('D\folder\filename.png')
Inspirado en este hilo (misma pregunta para Java): Take a screenshot with Selenium WebDriver
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()
Claro que no es real en este momento pero se enfrentó a este problema también, y mi manera: Parece que 'save_screenshot' Tengo algunos problemas para crear archivos con espacio en el nombre al mismo tiempo que agregué la aleatorización a los nombres de archivo para evitar el reemplazo.
Aquí tiene método para limpiar mi nombre de espacios en blanco (How do I replace whitespaces with underscore and vice versa?):
def urlify(self, s):
# Remove all non-word characters (everything except numbers and letters)
s = re.sub(r"[^\w\s]", '', s)
# Replace all runs of whitespace with a single dash
s = re.sub(r"\s+", '-', s)
return s
continuación
driver.save_screenshot('c:\\pytest_screenshots\\%s' % screen_name)
donde
def datetime_now(prefix):
symbols = str(datetime.datetime.now())
return prefix + "-" + "".join(symbols)
screen_name = self.urlify(datetime_now('screen')) + '.png'
driver.save_screenshot("path to save \\screen.jpeg")
Usted puede utilizar a continuación la función de relativo ruta como ruta absoluta no es una buena idea añadir en escritura
importación
import sys, os
Use el código de la siguiente manera:
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
screenshotpath = os.path.join(os.path.sep, ROOT_DIR,'Screenshots'+ os.sep)
driver.get_screenshot_as_file(screenshotpath+"testPngFunction.png")
asegúrese de crear la carpeta en la que está presente el archivo .py .
os.path.join
también le impiden ejecutar su secuencia de comandos en multiplataforma como: UNIX y Windows. Generará un separador de ruta según el sistema operativo en tiempo de ejecución. os.sep
es similar a File.separtor
en java
- 1. iOS screenshot delay
- 2. Formato JUnit en WebDriver vs WebDriver Respaldado
- 3. Ocurrió un error genérico en GDI + Selenium webdriver
- 4. ¿Toma ScreenShot of Desktop de forma programada en Ruby?
- 5. java.lang.ClassNotFoundException: API WebDriver
- 6. WebDriver getText arroja excepciones
- 7. webdriver-test es inutilizable
- 8. Selenium Webdriver configuración remota
- 9. Amplíe Selenium WebDriver WebElement?
- 10. Eliminar cookies en Webdriver
- 11. Selenium WebDriver Find nth element
- 12. Cómo mouseOver en Python WebDriver
- 13. selenio WebDriver ejemplo en Python
- 14. Prueba autocompletar con Selenium webdriver
- 15. Una excepción de Seinerium webdriver
- 16. elemento selectivo de Selenium webdriver
- 17. Selenium 2 (WebDriver) o Geb?
- 18. WebDriver: agregue el nuevo elemento
- 19. ¿Webdriver admite pagefactory para Python?
- 20. Selenium WebDriver objeto de página
- 21. Consola de Chrome Developer Tools - apilamiento de registros, ¿cómo veo las cosas re-registradas [Screenshot Inside]?
- 22. Android Screenshot API con diálogos y brindis, ¿quién es su padre?
- 23. ¿Cómo obtener una vista de accesorios transparente en UITableViewCell? (w/Screenshot)
- 24. webdriver classname with space using java
- 25. Manejo de certificadosSSL no confiables mediante WebDriver
- 26. ¿Cómo enviar cookies con selenium webdriver?
- 27. Desplazamiento con Selenium WebDriver con Java
- 28. selenio WebDriver Click() falla con IE9
- 29. pulsación de tecla (Ctrl + A) Selenio WebDriver
- 30. Cómo depurar acciones de Selenium WebDriver?