一尘不染

拍摄Selenium 2中的测试屏幕截图的最佳方法?

selenium

我需要一种获取功能测试屏幕截图的方法。现在,我正在使用带有C#绑定的Selenium
2。我非常想在测试结束时截取屏幕截图,以确保显示所需的页面。你们知道我可以将任何特定工具合并到C#代码中来触发屏幕截图吗?我找不到内置的Selenium
2解决方案(无需查看)。


阅读 271

收藏
2020-06-26

共1个答案

一尘不染

要在Selenium 2中制作屏幕截图,您需要执行以下操作

driver = new FireFoxDriver(); // Should work in other Browser Drivers
driver.Navigate().GoToUrl("http://www.theautomatedtester.co.uk");
Screenshot ss = ((ITakesScreenshot) driver).GetScreenshot();

//Use it as you want now
string screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
ss.SaveAsFile("filename", ImageFormat.Png); //use any of the built in image formating
ss.ToString();//same as string screenshot = ss.AsBase64EncodedString;

我很快在IronPython Repl中对其进行了测试,因此该代码应该可以正常工作。请参阅下面的IronPython代码

import clr
clr.AddReference("WebDriver.Common.dll")
clr.AddReference("WebDriver.Firefox.dll")
from OpenQA.Selenium import *
from OpenQA.Selenium.Firefox import *
driver = FirefoxDriver()
driver.Navigate().GoToUrl("http://www.theautomatedtester.co.uk")
s = driver.GetScreenshot()
s.AsBaseEncodedString
# HUGE string appears in the REPL
2020-06-26