问题标签 [white-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1223 浏览

wpf - WPF、Project White 和 Infragistics

我正在尝试使用Project White为我的 WPF 应用程序编写自动化测试。在我尝试与 Infragistics 控件交互之前,一切都很顺利。有没有人对此设置有任何经验,您能否发布一个示例,说明我如何(例如)与 XamRibbon 或 XamOutlookBar 进行交互?

0 投票
2 回答
5608 浏览

c# - 白色 - 文件打开对话框

这是我的问题。我有一个应用程序,它打开一个文件打开对话框,我试图在“文件名:”组合框部分输入文件路径和文件名。

应用程序加载一个您登录的表单。这将打开另一个表单,其中有许多按钮。选择其中一个按钮会打开另一个表单。正是在这种形式中,有一个选择文件的按钮。在这个阶段,打开了 3 个表格。这将打开标准文件打开对话框。我似乎无法处理这个文件打开对话框。

这是我正在使用的代码。

出于某种原因,我可以使用 LoginForm 变量从其他表单访问所有按钮。我试过以下。

这行不通。

我也尝试了以下方法,但这会返回 null。我认为我可以使用 LoginForm 变量来访问它。

有任何想法吗?谢谢

0 投票
2 回答
2335 浏览

c# - 自动化 .NET 应用程序

我正在尝试使用最简单的方法自动化隐藏的.NET 应用程序和另一个 .NET 应用程序(用 c# 编写)。它不是用于测试目的,它是一种解决此应用程序缺乏脚本的方法。

我已经尝试过白色框架,但它存在一个主要问题:它的工作方式。它很慢,而且它不适用于隐藏的窗口和控件(就像 winAPI 一样)。更重要的是,当“点击”白色移动鼠标时,将它的目标窗口带到前面等等。

我也在考虑使用 user32.dll 包装器,因为它处理目标的方式是我所需要的,但我认为它不适用于 .NET 应用程序。使用它也是一个问题,因为我的目标应用程序有 5 个标记为“...”的按钮,并且很难找到我需要的其中 2 个。我还想使用控件 .NET id(开发人员在设计 GUI 时为其控件命名的名称)。

顺便说一句,如果有帮助的话,我的目标应用程序是MeGUI。我们做了很多视频编码,这样的工具对我们有很大帮助。我需要隐藏MeGUI,因为我是唯一的程序员,其他使用我的工具的人不应该看到后台发生的事情,更不用说周围弹出的许多窗口。

0 投票
1 回答
67 浏览

mocking - 有没有办法在使用 White 进行验收测试时注入模拟?

在我们的客户端/服务器应用程序中,服务器端由一组 Web 服务公开。客户端与我们所谓的应用程序上下文交互以调用服务器。我希望能够在验收测试期间模拟应用程序上下文,以便将测试隔离到客户端,而不是让测试一直从客户端到服务器再到数据库,并且必须使用我们要运行的每个测试的正确数据。

这可能吗?还是我应该采取不同的方法?

0 投票
3 回答
522 浏览

visual-studio-2010 - Nunit 无法启动我的应用程序

Visual Studio 2010 Express C#、NUnit 2.5.8、白色 0.2.0

我正在尝试使用 NUnit + White 框架编写一些测试。我可以毫无问题地启动并运行 White 演示 (ListBoxExample)。

但是当我为自己的应用程序(.Net 4.0)编写一个简单的测试时,我有两个问题:

  1. Application.Launch(""):这个语句没有抱怨,但根本没有启动我的应用程序。路径是正确的,因为如果我输入了不正确的路径,就会出错。使用正确的路径没有错误,但没有应用程序正在启动。

  2. application.GetWindow(...) 此语句会导致错误:

DocBackupTestSuite.Tests.StartupTest:System.IO.FileLoadException:无法加载文件或程序集'Bricks,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

但是在我的项目中引用了 Bricks.dll 文件......

谢谢您的帮助

戴维

0 投票
1 回答
9245 浏览

c# - C# - 使用 Thoughtworks White 控制另一个应用程序的窗口

我正在创建一个 C# 程序,我需要控制另一个应用程序。我找到了这个 例子,但它并不适合我(或者至少我不能让它工作)。
1)应用程序已经在运行(所以我不能使用Application application = Application.Launch("foo.exe");
2)它有一个文本框,我需要阅读其中的内容。
3)然后我想按下它的一个按钮(可以这样做:Button button = window.Get<Button>("save"); button.Click();

我也搜索了谷歌,但我没有找到任何工作。
你能帮助我吗?提前致谢。

0 投票
4 回答
2173 浏览

c# - 如何使用 UIAutomation 或 White 启用按钮

我正在尝试自动化安装向导,我需要单击一个未启用的按钮。

我知道这可以使用 Windows 消息来完成,但我想知道 White 或 UIAutomation 是否已经对此提供支持

作为参考,这不起作用:

这也不是

上面的示例使用了我添加到O2 平台的基于 White 的 API (请参阅此处的自动化记事本示例

0 投票
2 回答
981 浏览

ui-automation - 在进行 UIAutomation 时处理 UAC 提示

有没有办法通过 UIAutomation 访问 UAC 提示(我正在为安装过程编写测试)。

http://msdn.microsoft.com/en-us/library/ms742884.aspx看起来有一种方法可以设置它。

所以问题是如何自动做到这一点?

我当前的 UIAutomation 设置是由令人惊叹的 White API (white.codeplex.com) 和来自O2 平台的一堆扩展方法组成的

0 投票
2 回答
6539 浏览

ui-automation - 使用 White/UIAutomation 如何获得右键单击上下文菜单

使用 UIAutomation 时,我似乎无法获得对执行右键单击命令时显示的上下文菜单的引用。

以下示例显示了一个案例,其中我打开了一个带有(其中的 Windows 资源管理器)的新窗口,从可用的 DesktopWindows 中获得了正确的引用(请注意,我可以将它移动好)并通过右键单击触发上下文菜单。

我尝试使用 window.Popup 变量来获取弹出窗口,但它为空(不是窗口对象的类型为 White.Core.UIItems.WindowItems.WinFormWindow

0 投票
2 回答
1203 浏览

wpf - 使用 Caliburn.Micro 实现 WPF UI 自动化?

我正在尝试为使用Caliburn.MicroWhite的 WPF 应用程序编写一些 UI 自动化测试。我正在使用 CM 的内置约定将我的控件绑定到视图模型的属性和方法。我也在使用Conductor类,这样我就可以在一个屏幕上看到多个视图。这通常意味着屏幕上的多个控件最终可能具有相同的x:Name值。它只会绑定到不同的视图模型。在CM 附带的 HelloScreens 示例应用程序中可以看到我想要做什么的一个好主意。

我遇到的问题是我将拥有多个具有相同x:Name属性的 XAML 元素,以便 CM 可以为我处理所有绑定工作。不幸的是,这意味着多个UIItem对象将具有相同的 UI 自动化 ID。例如,我发现获得不同TextBlock元素的唯一方法x:Name="DisplayName"是进行如下调用:

这意味着我的测试需要知道不同控件在屏幕上放置的确切顺序,这看起来很脆弱。只需添加另一个视图模型,我就可以看到我的测试全部中断。

  • x:Name除了使用属性之外,还有其他方法可以指定自动化 ID ?
  • 如果我直接使用 UI 自动化框架而不是使用 White,这会更容易吗?
  • 或者,我真的必须放弃 CM 的基于约定的绑定并赋予每个唯一的x:Name值并手动绑定它们吗?

更新

为了澄清我的意思是同时显示多个视图,这是我的总体布局。我有我ShellViewModel的来源Conductor<IScreen>.Collection.OneActive。然后我的视图有一个ItemsControl绑定到外壳视图模型的Items属性。每个项目模板都显示了一个按钮,用于将特定内容加载IScreenContentControlshell 视图中的 a 中。所以,如果我尝试查找带有 的元素x:Name="DisplayName",我会在 shell 视图上找到标签,在按钮上的ItemsControl标签以及在ContentControl.