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. WebDriver getText arroja excepciones
- 6. Selenium Webdriver configuración remota
- 7. java.lang.ClassNotFoundException: API WebDriver
- 8. Amplíe Selenium WebDriver WebElement?
- 9. webdriver-test es inutilizable
- 10. Eliminar cookies en Webdriver
- 11. elemento selectivo de Selenium webdriver
- 12. Prueba autocompletar con Selenium webdriver
- 13. ¿Webdriver admite pagefactory para Python?
- 14. selenio WebDriver ejemplo en Python
- 15. Selenium 2 (WebDriver) o Geb?
- 16. Cómo mouseOver en Python WebDriver
- 17. Selenium WebDriver Find nth element
- 18. Una excepción de Seinerium webdriver
- 19. WebDriver: agregue el nuevo elemento
- 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. ¿Cómo obtener una vista de accesorios transparente en UITableViewCell? (w/Screenshot)
- 23. Android Screenshot API con diálogos y brindis, ¿quién es su padre?
- 24. Selenium WebDriver acceder a un elemento secundario
- 25. selenio WebDriver Click() falla con IE9
- 26. Cómo deshabilitar Flash en selenium remote webdriver
- 27. Descargar un archivo usando HTTP en WebDriver
- 28. Python Selenium WebDriver drag-and-drop
- 29. Cómo conducir Firebug desde Selenium WebDriver
- 30. Patrón de fábrica para Selenium webdriver