2017-02-28 17 views
1

我在Browserstack上使用Selenium Webdriver自动化测试,当我在Firefox和IE上截取屏幕截图时,整个页面。但是因为我的页面包含一个很长的列表 - 屏幕截图太“长”,并且因为它不是一个清晰的图像,并且很难看到该页面是否行为正确。我需要它像Chrome那样精确地执行操作:仅限于视口宽度和高度的屏幕截图。在Firefox和IE上可以吗?使用Selenium Webdriver C#仅用于视图(Firefox和IE)而不是整个页面的屏幕截图使用Selenium Webdriver C#

的代码我使用:

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

验证了Python这种行为与Selenium 3.0.2您可以使用内置于一体的Windows总是一个ss和裁剪 – Steve

+0

您可以使用裁剪屏幕截图并保存到新文件 –

+0

Tnx球员。我必须手动裁剪吗?这是一个很大的图像 - 这是不可能的。有没有办法让它自动化? @Steve – buca

回答

0

升级到Selenium 3版本。

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

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

所以,只要升级硒版本,你可以实现行为,并且相同的代码应该工作。

Selenium official docs

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

我在这两个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() 
+0

Safari和IE并非如此 –

相关问题