4

シナリオの最後で、失敗したら写真を撮りたい。次のコードは機能しません。

[AfterScenario]
public void AfterScenario()
{
    if(ScenarioContext.Current.TestError != null)
    {
     WebBrowser.Driver.CaptureScreenShot(ScenarioContext.Current.ScenarioInfo.Title);
    }
}

これは、(セレンがラップされた) Coypu を使用してブラウザーを起動したことが原因である可能性があると思います。ドライバーには「captureScreenShot」メソッドが実装されていません。だから私の質問は: coypu を使用してブラウザを起動したときに、シナリオの後にスクリーンショットを撮るにはどうすればよいですか?

ブラウザを起動するコードは次のとおりです。

sessionConfiguration.Driver = typeof (SeleniumWebDriver);
sessionConfiguration.Browser = Drivers.Browser.Firefox;
4

2 に答える 2

2

おっしゃる通り、Coypuには現在実装されていません。その理由は、これまでスクリーンショットを撮る必要がなかっただけであり、今まで誰も求められていません.

ネイティブ ドライバー (この場合は WebDriver) にアクセスするには、BrowserSession.NativeWebDriver の GetScreenshot メソッドを使用できます。これは最終的に次のようになります (免責事項: テストされていません):

var driver = (ITakesScreenshot) coypuBrowserSession.Native;

var screenshot = driver.GetScreenshot();

screenshot.SaveAsFile("c://screenshot.png", System.Drawing.Imaging.ImageFormat.Png);

これをCoypuのBrowserWindow APIに追加するために、githubで問題を公開しました

于 2012-10-11T15:16:12.857 に答える