Voglio prendere alcuni screenshot della mia app ibrida per collegare itunes automaticamente. Sto usando Ubuntu 14.04. chromedriver 2.15.322448Come prendere schermate Retina con Xvfb e selenio
Prendere schermate automaticamente è facile con Selenium e Xvfb. Ma non è facile ottenere schermate della retina.
ho iniziato la mia Xvfb con un dpi più elevata:
/usr/bin/Xvfb :99 -screen 0 2000x2000x24 -dpi 200
Quando controllo il tutto informazioni sul display sembra essere di destra:
xdpyinfo -display :99
...
screen #0:
dimensions: 2000x2000 pixels (254x254 millimeters)
resolution: 200x200 dots per inch
depths (6): 24, 1, 4, 8, 16, 32
...
poi comincio il mio chromedriver come questo
private WebDriver getChromeDriver (Phone phone)
{
Map<String, Object> deviceMetrics = new HashMap<String, Object>();
deviceMetrics.put("width", 320);
deviceMetrics.put("height", 460);
deviceMetrics.put("pixelRatio", 2);
Map<String, Object> mobileEmulation = new HashMap<String, Object>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
mobileEmulation.put("userAgent", "iphone4");
ChromeDriverService cds = new ChromeDriverService.Builder().withEnvironment(ImmutableMap.of("DISPLAY", ":99")).build();
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(cds, capabilities);
return driver;
}
e dopo qualche altro noioso codice, prendo lo screenshot:
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
Questo non funziona. Lo screenshot è in dpi regolari. Quindi l'immagine del sito web catturata è solo 320x460 e non 640x960 come dovrebbe essere.
Ho impostato un punto di interruzione poco prima che lo screenshot è stato preso e fatto uscire il framebuffer in questo modo:
export DISPLAY=:99
xwd -root -silent | xwdtopnm |pnmtojpeg > screen.jpg
Come si può vedere la barra del titolo è reso in relazione ad una maggiore dpi, ma il resto della finestra del browser no.
Quindi, come posso eseguire un chromedriver con più dpi per acquisire schermate retina? È possibile?
hai trovato una soluzione a questo?Sono bloccato esattamente allo stesso problema, lo apprezzerei se avessi condiviso la tua esperienza con gli screenshot della risoluzione xvfb e retina – Alex
Ho postato una risposta qui sotto. Spero possa essere d'aiuto. – Janning