繁体   English   中英

使用Selenium Webdriver C#仅截取视口(Firefox和IE),而不是整个页面

[英]Taking screenshot of the viewport only (Firefox and IE), not the whole page, using Selenium Webdriver C#

我在Browserstack上使用Selenium Webdriver自动化测试,当我在Firefox和IE上截取屏幕截图时,它会截取整个页面的屏幕截图。 但由于我的页面包含很长的列表 - 屏幕截图太长',因为它不是一个清晰的图像,很难看出页面是否表现正常。 我需要它像Chrome一样完成:视口宽度和高度的屏幕截图。 在Firefox和IE上有可能吗?

我使用的代码:

Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
ss.SaveAsFile(imageSave, System.Drawing.Imaging.ImageFormat.Png);

升级到Selenium 3版本。

Selenium 2.*版本中,完整的网页被视为截图。

Selenium 3.*版本开始, 只有网页的可见部分被视为截图。

因此,只需升级selenium版本,就可以实现行为,并且相同的代码应该可以工作。

来自Selenium官方文档

Screenshot ss = ((ITakesScreenshot)webDriver).GetScreenshot();
string screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
ss.SaveAsFile(activeDir + TestSuiteName + "//" + FileNanme + imageFormat, ImageFormat.Jpeg);

我在Chrome & Firefox使用Selenium 3.0.2Python验证了这种行为

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://stackoverflow.com/users/2575259/naveen')
driver.get_screenshot_as_file('D:/Naveen/so/google.png') 
driver.quit()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM