Selenium webdriver C# - 全页截图

ani*_*nil 5 screenshot webdriver selenium-webdriver

任何人都可以帮助我使用Selenium webdriver拍摄整页截图.我正在使用c#/ Nunit.我正在使用的当前方法没有采用完整的浏览器页面.

我使用下面的代码截取屏幕截图.

public void TakeScreenShot(IWebDriver webDriver,string testName,string className)
{          

string folderName = String.Format("{0}.{1}", className, testName);

// Create Screenshot folder
string createdFolderLocation = CreateFolder(folderName);

// Take the screenshot            
Screenshot ss = ((ITakesScreenshot)webDriver).GetScreenshot();            
string screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;

// Save the screenshot
ss.SaveAsFile((string.Format("{0}\\{1}",createdFolderLocation,testName + ".Jpeg")), System.Drawing.Imaging.ImageFormat.Jpeg);
ss.ToString();

}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以使用此包https://www.nuget.org/packages/Noksa.WebDriver.ScreenshotsExtensions/

为了截取整个页面的屏幕截图,请使用 VerticalCombineDecorator:

var vcs = new VerticalCombineDecorator(new ScreenshotMaker());
var screen = _driver.TakeScreenshot(vcs);
Run Code Online (Sandbox Code Playgroud)


Mac*_*ver 1

在拍摄屏幕截图之前,尝试将浏览器窗口的大小更改为较大的值。我的尺寸比宽度小 10,比高度小 10。尝试加法而不是减法。

    driver = new FirefoxDriver(firefoxProfile);

    if (Config.MAXIMIZE_BROWSER_WINDOW)
    {
        driver.Manage().Window.Size = new System.Drawing.Size(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - 10, System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 10);
    }
Run Code Online (Sandbox Code Playgroud)