Jan*_*ing 7 selenium screenshot retina-display xvfb selenium-chromedriver
我想为我的混合应用程序拍摄一些屏幕截图,以便自动连接.我正在运行Ubuntu 14.04.chromedriver 2.15.322448
使用Selenium和Xvfb可以轻松截取屏幕截图.但是获取视网膜截图并不容易.
我用更高的dpi开始了我的Xvfb:
/usr/bin/Xvfb :99 -screen 0 2000x2000x24 -dpi 200
Run Code Online (Sandbox Code Playgroud)
当我检查显示信息时,一切似乎都是正确的:
xdpyinfo -display :99
...
screen #0:
dimensions: 2000x2000 pixels (254x254 millimeters)
resolution: 200x200 dots per inch
depths (6): 24, 1, 4, 8, 16, 32
...
Run Code Online (Sandbox Code Playgroud)
然后我就像这样开始我的chromedriver
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;
}
Run Code Online (Sandbox Code Playgroud)
在其他一些无聊的代码之后,我会截取屏幕截图:
File srcFile = ( (TakesScreenshot) driver ).getScreenshotAs(OutputType.FILE);
Run Code Online (Sandbox Code Playgroud)
这不起作用.屏幕截图是常规dpi.所以捕获的网站图像只有320x460而不是640x960.
我在截取屏幕截图之前设置了一个断点,然后像这样转储帧缓冲:
export DISPLAY=:99
xwd -root -silent | xwdtopnm |pnmtojpeg > screen.jpg
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,标题栏是针对较高的dpi呈现的,但浏览器窗口的其余部分则没有.
那么我怎样才能运行一个带有更多dpi的chromedriver来拍摄视网膜截图?可能吗?
如果您只想获取一些屏幕主机,您可以使用 google chrome headless 工具。例如,获取 Retina 屏幕截图就像
$ google-chrome --headless --hide-scrollbars --disable-gpu \
--screenshot --force-device-scale-factor=2 \
--window-size=750,1334 https://www.kicktipp.de/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1822 次 |
最近记录: |