小编use*_*052的帖子

Selenium WebDriver C#完整网站截图使用ChromeDriver和FirefoxDriver

当我使用ChromeDriver截取屏幕截图时,我会获得具有视口大小的屏幕.
当我使用FirefoxDriver截取屏幕截图时,我得到了我想要的内容,这是一个网站的全屏幕打印.

ChromeDriver声明如下:

IWebDriver driver = new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)

FirefoxDriver声明如下:

IWebDriver driver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

两个驱动程序执行相同的代

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);
Run Code Online (Sandbox Code Playgroud)

ChromeDriver的test.png分辨率为1920x1099,仅包含浏览器视口.
FirefoxDriver的test.png分辨率为1903x16559,包含整个页面.

我知道该GetScreenshot()方法不会返回相同的分辨率大小,因为它在IEDriver,FirefoxDriver,OperaDriver,ChromeDriver中的实现略有不同.

我的问题是:

  1. 为什么ChromeDriver和FirefoxDriver的.GetScreenshot()方法之间存在这样的差异,即使他们使用相同的界面(ITakesScreenshot)?

  2. 有没有办法让ChromeDriver的GetScreenshot()方法返回整个网页屏幕而不仅仅是视口?

c# selenium screenshot webdriver selenium-chromedriver

17
推荐指数
3
解决办法
3万
查看次数