【发布时间】:2015-04-23 07:35:09
【问题描述】:
Take a screenshot with Selenium WebDriver 上的问答包含了如何使用 Selenium Web Driver 使用不同语言截屏的精彩描述。
我使用 Python 和 C# 以及一组不同的浏览器驱动程序来驱动我的 Web 驱动程序。
例如,如果使用 Python 使用 PhantomJS 无头浏览器截取屏幕截图,我会得到整页截图。
在C#中截图不直接作为驱动方法提供,所以需要一些代码(见上面提到的问题和建议的C#解决方案)。
但是,C# 配方虽然可以完美地拍摄屏幕截图,但并不是我想要的。
问题是 C# recipe 需要一个屏幕截图,而我正在寻找的是如何拍摄一个完整的页面。屏幕截图应该是在屏幕上看到的内容,并且浏览器页面通常比屏幕大。在许多情况下,拍摄的照片应该是页面照片。
这个问题与引用的问题在细微的问题细节上有所不同,这会导致结果有所不同。我想这里欢迎不同语言的页面拍摄解决方案。
【问题讨论】:
-
我认为解决这个问题的唯一方法是在代码中设置浏览器窗口的大小。这样,屏幕截图与画布大小直接相关。这可能有助于您的驱动程序实例化:
_driver.Manage().Window.Size = new System.Drawing.Size(1280, 5000);(或任意大高度!) -
driver.Manage().Window.Size 设置物理窗口大小(我使用它来更改某些浏览器上的窗口大小,这些浏览器在 webdriver 启动时具有相当小的窗口)。当页面比页面长/宽时,我会假设画布也随着内容获得滚动条而更大。会尝试这个食谱并反思。
标签: c# python selenium selenium-webdriver