我在Browserstack上使用Selenium Webdriver自动化测试,当我在Firefox和IE上截取屏幕截图时,它会截取整个页面的屏幕截图。但由于我的页面包含很长的列表 - 屏幕截图太长',因为它不是一个清晰的图像,很难看出页面是否表现正常。我需要它像Chrome一样完成:视口宽度和高度的屏幕截图。在Firefox和IE上有可能吗?
我使用的代码:
Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
ss.SaveAsFile(imageSave, System.Drawing.Imaging.ImageFormat.Png);
答案 0 :(得分:0)
升级到Selenium 3
版本。
在Selenium 2.*
版本中,完整网页将作为屏幕截图。
从Selenium 3.*
版本开始,网页的仅可见部分被视为屏幕截图。
因此,只需升级selenium版本,即可实现此行为,并且相同的代码应该可以正常工作。
Screenshot ss = ((ITakesScreenshot)webDriver).GetScreenshot();
string screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
ss.SaveAsFile(activeDir + TestSuiteName + "//" + FileNanme + imageFormat, ImageFormat.Jpeg);
我在Python
中使用Selenium 3.0.2
Chrome & Firefox
验证了此行为
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()