簡體   English   中英

Selenium Grid中C#中的屏幕截圖

[英]Screenshot in C# on Selenium Grid

在針對硒網格運行測試時嘗試拍攝屏幕截圖時,我遇到一個奇怪的問題

 public void TakeScreenshot(object methodName)
    {
        try
        {
            Screenshot ss = ((ITakesScreenshot)_driver).GetScreenshot();
            var filePath = AppDomain.CurrentDomain.BaseDirectory + "\\..\\..\\Screenshots\\" + methodName + ".png";
            ss.SaveAsFile(filePath);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            throw;
        }

    }

我有以下方法來截取屏幕截圖,但是當它在網格上運行時,即使測試通過了,我也會遇到以下失敗。

System.InvalidOperationException:會話[(null externalkey)]不可用,也不在最近的1000個終止的會話中。

當我在本地運行它時,我得到以下內容

OpenQA.Selenium.WebDriverException:引發了具有null響應的異常,該異常將HTTP請求發送到URL http:// localhost:54408 / session // screenshot的遠程WebDriver服務器。 異常的狀態為ConnectFailure,並且消息為:無法連接到遠程服務器

但是,對於這兩種環境,我都得到了屏幕截圖,但這未通過測試。 有誰知道用C#截圖硒的最佳方法?


更新-我發現這似乎只是在測試完成后才發生,我在[BeforeScenario]中放置了完全相同的代碼,並且沒有出錯,因此它在測試結束時發生了...

由於這些評論,我發現了為什么會這樣。

我收到該錯誤的原因是沒有驅動程序,沒有驅動程序的原因是由於[AfterScenario]被多次調用,因此第二次運行時沒有驅動程序,因此無法拍攝屏幕截圖。

我的after場景被多次調用的原因是因為它在我創建的基類中,該基類由每個step類繼承。

一旦我創建了一個新類,並將after / before場景移到了自己的單獨類中,那么我的after場景只被調用了一次,錯誤就消失了。

暫無
暫無

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

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