【问题标题】:Screenshot from AutomationElement with .Net Automation Testing使用 .Net 自动化测试的 AutomationElement 的屏幕截图
【发布时间】:2017-03-26 22:47:24
【问题描述】:

我正在使用 System.Windows.Automatition.UiTesting 程序集来启动几个进程并分析它们的主窗口。 如何创建显示窗口的屏幕截图?

Process process = new Process();
process.StartInfo.FileName = ExecutablePath;
if (!process.Start()){
    throw new Exception.Create("Could not start Process.");       
}    
Thread.Sleep(TimeSpan.FromSeconds(10));
process.Refresh();
AutomationElement mainWindow = AutomationElement.FromHandle(process.MainWindowHandle);
var imageFromWindow = ...?

该窗口可能(部分)被其他窗口隐藏。

【问题讨论】:

    标签: c# ui-automation


    【解决方案1】:

    该元素必须是可见的,然后您可以在 BoundingRectangleProperty 中获取它的坐标并获取屏幕截图,如下所述:

    Is CopyFromScreen a right way to get screenShots?

    【讨论】:

    • 对不起,我忘了说这些窗口可能被其他窗口部分隐藏(我一次开始多个测试)。我需要针对这种情况的解决方案。
    • Hmm.. 问题是从窗口句柄中获取可视对象(只能在同一个应用程序域中),您在自动化元素中拥有,然后您可以使用这个:stackoverflow.com/questions/5189139/…
    • 抱歉,我无法将测试更改为在同一应用程序域中本地启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多