当我使用ChromeDriver截图时,截屏的大小与我的视窗大小相同。
当我使用FirefoxDriver截图时,得到的是我想要的效果——整个网站的全屏截图。
ChromeDriver的声明方式如下:
IWebDriver driver = new ChromeDriver();
FirefoxDriver的声明如下:
IWebDriver driver = new FirefoxDriver();
两个驱动程序执行相同的代码:
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl(url);//url is a string variable
ITakesScreenshot screenshotDriver = driver as ITakesScreenshot;
Screenshot screenshot = screenshotDriver.GetScreenshot();
screenshot.SaveAsFile("c:/test.png", ImageFormat.Png);
ChromeDriver的test.png分辨率为1920x1099,仅包含浏览器视口。
FirefoxDriver的test.png分辨率为1903x16559,包含整个页面。
我知道GetScreenshot()
方法返回的分辨率大小并不相同,因为在IEDriver、FirefoxDriver、OperaDriver和ChromeDriver中实现略有不同。
我的问题如下:
为什么ChromeDriver和FirefoxDriver的
.GetScreenshot()
方法存在这样的差异,即使它们使用相同的接口(ITakesScreenshot)?是否有办法使ChromeDriver的
GetScreenshot()
方法返回整个网页屏幕,而不仅是视口?
totalwidth1 = document.body.scrollWidth. totalHeight1 = document.body.scrollHeight. viewportWidth1 = document.documentElement.clientWidth. viewportHeight1 = document.documentElement.clientHeight.
- Michiel Bugher