Quando si acquisisce uno screenshot con Selenium Webdriver su Windows con Python, lo screenshot viene salvato direttamente nel percorso del programma, c'è un modo per salvare il file .png in una directory specifica?Screenshot Webdriver
risposta
Usa 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')
Capisco siete alla ricerca di una risposta in pitone, ma qui è come si potrebbe farlo in rubino ..
http://watirwebdriver.com/screenshots/
Se questo funziona solo salvando solo nella directory corrente. Prima assegnerei l'immagine a una variabile e quindi salvarla su disco come file PNG.
esempio:
image = b.screenshot.png
File.open("testfile.png", "w") do |file|
file.puts "#{image}"
end
dove b è la variabile del browser usato da WebDriver. Ho la flessibilità di fornire un percorso assoluto o relativo in "File.open" così posso salvare l'immagine ovunque.
Sì, abbiamo un modo per ottenere l'estensione screenshot del .png usando python WebDriver
uso sottostante Codice se si lavora in pitone webriver.it è molto semplice.
driver.save_screenshot('D\folder\filename.png')
Ispirato da questa discussione (stessa domanda per 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()
Certo che non è vero e proprio in questo momento, ma ho affrontato questo problema anche e il mio modo: Sembra 'save_screenshot' avere qualche problema con la creazione di file con spazio nel nome stesso tempo in cui ho aggiunto la randomizzazione ai nomi di file per eseguire l'override di escape.
Qui ho avuto modo di pulire il mio nome di spazi bianchi (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
poi
driver.save_screenshot('c:\\pytest_screenshots\\%s' % screen_name)
dove
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")
È possibile utilizzare sotto la funzione per parente percorso come percorso assoluto non è una buona idea aggiungere nello script
Import
import sys, os
Usa codice, come di seguito:
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")
assicurarsi che si crea la cartella in cui è presente il file .py .
os.path.join
impediscono inoltre di eseguire lo script in multipiattaforma come: UNIX e Windows. Genererà il separatore di percorso come da sistema operativo in fase di esecuzione. os.sep
è simile a File.separtor
in java
- 1. watir-webdriver black screenshot
- 2. Come eseguire uno screenshot parziale con Selenium WebDriver in python?
- 3. Selenium 2 (webdriver): la cattura di uno screenshot restituisce un'immagine nera
- 4. Selenio Java Script WebDriver utilizzando Mocha - prendere screenshot se test fallisce
- 5. WKWebView Screenshot
- 6. Formato JUnit in WebDriver vs WebDriver Backed
- 7. Come posso acquisire uno screenshot se i miei nosetests falliscono?
- 8. iPad 3 slow screenshot
- 9. Overlay schermo per Screenshot
- 10. C# screenshot bug?
- 11. Genera screenshot della mappa
- 12. SmartWatch 2 screenshot
- 13. ritardo screenshot iOS
- 14. Rileva uno screenshot Android
- 15. Blackberry 10 screenshot errore
- 16. Android prendendo un'immagine screenshot
- 17. Excel VBA salvare screenshot
- 18. Come prendere screenshot di tutta la pagina in Goniometro?
- 19. Webdriver Come aspettare che l'elemento sia cliccabile nel webdriver C#
- 20. Strumento di screenshot per BlackBerry?
- 21. Converti URL in screenshot (script)
- 22. Invio dello screenshot tramite C#
- 23. Come prendere screenshot Qt/QML
- 24. Come creare screenshot di QWidget?
- 25. Libreria C# per scattare screenshot?
- 26. Sito Screenshot (HTML5 Canvas/Servizi)
- 27. Confronto screenshot fuzzy con selenio
- 28. App per iOS mancante screenshot
- 29. Come fare screenshot sotto Wayland?
- 30. Output TestNG screenshot to Jenkins