簡體   English   中英

用硒拍攝整頁的屏幕截圖

[英]Take screenshot of full page with selenium

我有在每個步驟之后都要截屏的代碼,但是只截取了當前視點的截屏。 我希望獲取整個頁面的屏幕截圖。

我已經研究過aShot之類的東西,但不知道如何將其添加到我的項目中。

當前代碼:

    [AfterStep]
    public void AfterStep()
    {
        Screenshot ss = ((ITakesScreenshot)webDriver).GetScreenshot();
        string stepTitle = ScenarioContext.Current.StepContext.StepInfo.Text;
        string fileTitle = DateTime.Now.ToString("yyyyMMdd_HHmmss")+ "_" + stepTitle;
        string drive = (path + DateTime.Now.ToString("yyyyMMdd_HHmm") + "_" + testTitle);

        string screenshotfilename = drive + "\\" + fileTitle + ".Png";
        ss.SaveAsFile(screenshotfilename, ScreenshotImageFormat.Png);
    }

編輯:

我的問題不在於精確截屏。 我面臨的問題是我的頁面擴展了瀏覽器的高度,因此,當我進行屏幕截圖時,它是可查看頁面的屏幕截圖,而不是整個頁面的屏幕截圖。

在測試開始時您是否嘗試過以下方法?

webDriver.Manage().Window.Maximize();

例如,您可以在此處添加它:

[Binding]
public class Setup
{
public static IWebDriver Driver = new ChromeDriver();

[BeforeTestRun]
public static void SetUpBrowser()
{
Driver.Manage().Window.Maximize();
}

注意:它的語法可能與Gherkin中的'BeforeTestRun'略有不同

如果您的瀏覽器位於頂部,並且您在屏幕上看到了它,請嘗試使用C#的屏幕截圖功能(該功能將截取整個屏幕的屏幕截圖)。 就像單擊PrtScn按鈕將保存整個屏幕。

在webdriver本身內的實現(如您顯示的代碼),IMO應該只截取webdriver的屏幕快照,因為您要讓webdriver截取其處理的屏幕快照(瀏覽器窗口)。 如果要全屏顯示,請使用下面鏈接中使用的一些實現。

使用C#捕獲屏幕截圖

編輯:即使您看不到整個頁面的屏幕截圖(並且您必須向下滾動才能看到它),也似乎不可能如以下所示:

如何在Java中使用Selenium獲取完整網頁的屏幕截圖?

您可能要嘗試硒的此功能:

set_window_size(int(width), int(height))

我只是將窗口大小設置為4800 * 2560,並一次捕獲了整個頁面,因此不得不在27英寸的屏幕上向下滾動兩次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM