C# WinAppDriver/WebDriver屏幕截图-如何仅拍摄一个桌面(主显示器)的屏幕截图?

C# WinAppDriver/WebDriver屏幕截图-如何仅拍摄一个桌面(主显示器)的屏幕截图?,c#,selenium,selenium-webdriver,screenshot,winappdriver,C#,Selenium,Selenium Webdriver,Screenshot,Winappdriver,我正在尝试使用WinAppDriver拍摄全屏截图。由于WinAppDriver来自WebDriver,因此我创建了如下桌面会话: var options = new AppiumOptions(); options.AddAdditionalCapability("app", "Root"); options.AddAdditionalCapability("deviceName", PcName);

我正在尝试使用WinAppDriver拍摄全屏截图。由于WinAppDriver来自WebDriver,因此我创建了如下桌面会话:

    var options = new AppiumOptions();
    options.AddAdditionalCapability("app", "Root");
    options.AddAdditionalCapability("deviceName", PcName);
    var desktopSession = new WindowsDriver<WindowsElement>(new Uri(Uri), options, TimeSpan.FromSeconds(timeOutInSeconds));
这几乎在所有时间都有效,但关键是:我在两个显示器上工作,所以它也会拍摄其他屏幕的截图。


有没有办法在WinAppDriver中只拍摄主监视器的屏幕截图?

据我所知,没有。在该场景中,“桌面”覆盖了两个屏幕。或者,如果某个应用程序是会话的根点,则您可以仅从该应用程序获取屏幕截图

一般来说,我建议您在github repo中询问WinAppDriver相关问题 社区活跃的地方:

或者你可以做一些变通,比如,截取屏幕截图,转换成图像,将图像一分为二(=从你不想要的屏幕上切下所有像素),保存裁剪后的图像

希望我能帮忙

Screenshot screenshot = desktopSession.GetScreenshot();