问题标签 [teststack]

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 回答
517 浏览

c# - TestStack.White 不能点击菜单栏项目?

我目前正在制作一个程序,该程序将自动执行我需要在程序上执行的任务。

我目前遇到的一个问题是“单击”菜单栏中的菜单。

我使用 Spy++ 找到了菜单栏的类名,它被称为 TActionMainMenuBar,但它“下”的所有内容都本地化为 ammbSSC。

https://i.imgur.com/R7lLfVg.png

我可以使用以下命令找到主菜单栏:

返回:

但是尝试使用 .ByText 或 .ByIndex (或其他任何东西)查找“ACTIONS”会引发无法找到“ACTIONS”的异常。

我还能找到这样的文字吗?或者我应该求助于使用鼠标输入 - 即自动化鼠标移动?

编辑:

我也试过这样做:

但这会引发“索引超出了数组的范围。”

我也试过这样做:

和:

但这会将我的鼠标移动到屏幕中心附近。

0 投票
1 回答
228 浏览

c# - TestStack.White 面板点击

我想用 TestStack.White 创建一个自动登录 WinForms 应用程序。这是我的代码:

XY 应用程序主窗口有 10 多个面板,其中之一是“登录”面板。当我单击 button1 时,XY 应用程序“登录”面板将可见,因此可以正常工作。

但是我的 WinForms 应用程序冻结了,当我关闭 XY 程序但我想继续运行时,我得到了控制权。

在调试模式下,显示以下错误消息:“托管调试助手'DisconnectedContext':'为此 RuntimeCallableWrapper 转换到 COM 上下文 0x15305d0 失败...”

我想我明白为什么会收到此消息,但我不知道解决方案是什么。

有人可以帮助我吗?谢谢

0 投票
0 回答
105 浏览

c# - 从面板获取数据(自动化)

我想知道是否有可能从面板获取列表/值。(因为面板只是面板)

此面板行为类似于 gridview 或 listview。有行和列,但控件类型是窗格。

在此处输入图像描述

我使用自动化工具 UIA 和 TestStack 但徒劳地发现这个面板我不知道如何从面板获取数据。此面板没有子元素/项目。

有没有人有任何想法或我在寻找什么,或者这件事是不可能的?

谢谢你

0 投票
1 回答
873 浏览

c# - 测试堆栈 | 如何查找自定义控件和调用方法/触发事件

我有一个自定义控件HtButton,它继承自Control.

我做了一个自定义FrameworkElementAutomationPeer并覆盖了OnCreateAutomationPeer()in HtButton

要获得所有这些,我使用以下调用:

我收到一份清单CustomUIItem

在此处输入图像描述

以下调用引发ArgumentException: At least two conditions must be specified.

在此处输入图像描述

我已阅读以下帖子和文章但没有成功


也许有人可以给我一个原始示例如何Foo()触发FooEvent.HtButton

0 投票
2 回答
2675 浏览

visual-studio - Bodi 接口无法使用 SpecFlow 解决

我进行了全面搜索,发现了多篇关于 Bodi 异常的帖子,但这些帖子都没有与 TestStack.White 相关,而且在我的情况下没有任何回复有效。

我正在使用以下内容:

  • 规范流 2.4.0
  • TestStack.White(0.13.3)
  • 女士测试(1.4.0)
  • 视觉工作室 2017(15.9.4)

我正在尝试使用现有接口将自动化元素转换为 TestStack.White UIItem

然后我像这样使用它

当我运行测试时,出现以下错误

消息:测试方法 SmokeTests.SmokeTestSpec.SmokeTestsFeature.EditsAreSaved 抛出异常:BoDi.ObjectContainerException:接口无法解析:TestStack.White.Factory.UIItemFactory

我尝试在 ScenarioHooks 中注册容器并在 Before Scenario 挂钩中注册接口。当我这样做时,我得到完全相同的东西。

我从事 SpecFlow 已经有很长时间了,但我总是被这种容器注入的东西所困扰。我已阅读文档并搜索了各个站点,但无法正常工作。

欢迎任何建议。我在这里完全被难住了。

0 投票
1 回答
105 浏览

c# - 受系统繁忙状态影响的 TestStack.White 菜单操作

这是通过nunit3.ConsoleRunner.

这真的很奇怪,但是在我假期之前可以完美运行的相同代码现在挂了长达 2 小时或更长时间。我为我们的测试创建了自己的方法,因为在导航过去的第二级菜单项时MenuClick(),标准方法也经常挂起。MenuBar.MenuItem()正如我所说,我的方法在假期前效果很好。

反正现在Menu.SubMenu()通话频繁需要2个小时甚至更长时间才能完成,这是不能接受的。

另一个奇怪的地方是测试代码成对地点击了第三级菜单项,它们都打开了一个浏览文件夹对话框。第一个选择源文件夹,另一个选择目标文件夹。“挂起”仅在(到目前为止)尝试submenu在一对 3 级菜单项点击中为第二级获得第二级时发生。

目前为了解决这个问题,我正在生成一个调用 menu = menuBar.MenuItem() 的新线程。在主线程中,我等待菜单为非空或超时发生,然后在检查之间进行 500 毫秒的睡眠。这至少可以让我重试。但是,出现这种情况时,整个被测应用程序中的其余菜单操作都挂起,因此我无法重试。似乎是 TestStack.White 菜单处理区域中的错误。

0 投票
2 回答
305 浏览

c# - TestStack.White ListBox.SelectedItemText 不起作用

我有一个带有 2 个控件的WinForms对话框。ListBox在正在测试的应用程序中,双击列表框控件之一(我将其称为 CONTROL LISTBOX)中的任何项目会导致选择另一个列表框(SLAVE LISTBOX)中的匹配项。

我的测试导致在控制列表框中输入多个条目。然后测试ListBox.SelectedItem.DoubleClick()对每个 CONTROL lISTBOX 项目执行 a,比较ListBox.SelectedItemText两个列表框控件的。

在应用程序 UI 中,这始终有效,但ListBox.SelectedItemText对 SLAVE LISTBOX 的调用测试仅在双击\比较的初始迭代中返回与 UI 中选择的内容正确匹配的文本。

谁能帮我弄清楚我做错了什么?谢谢!

这是我的代码:

如您所见,通过下图,两个列表框中的文本是相同的。但是,对ListBox.SelectedItemText顶部列表框 (SLAVE LISTBOX) 的调用返回第一次迭代的值,该值与双击/比较的第一次迭代期间底部列表框 (CONTROL LISTBOX) 中的第一项匹配。

证明所选列表框项目的文本匹配

0 投票
1 回答
647 浏览

c# - TestStack.White 获取所有标签

有没有办法获取特定类型窗口的所有元素?在我的情况下,我想获取页面的所有选项卡,然后过滤它具有更大的 Y 坐标。

此方法: Get<TestStack.White.UIItems.TabItems.Tab>(TestStack.White.UIItems.Finders.SearchCriteria.All) 仅返回它找到的第一个元素。

谢谢你和问候,扬

0 投票
0 回答
263 浏览

c# - 使用 TestStack.White 测试触发后台工作的控件

我正在尝试为 WPF 应用程序编写 UI 测试用例。这包括一个搜索文本框。在向文本框提供输入时,搜索输入字符串是在后台线程中完成的。

这是我的基本代码:

现在在我设置Text属性的那一行,后台工作将启动,框架抛出异常:

TestStack.White.UIItems.UIActionException :窗口没有响应,等待 50000 毫秒后

基本上,框架会等待配置的时间,然后由于后台工作未及时完成而引发异常。

我检查了文档,它提到了一种解决方法,但这将涉及我更改我的应用程序代码。由于这是一个遗留应用程序,我不想更改代码(我们正在迁移,因此希望限制代码更改)。

这似乎是一个普遍的问题,但一直无法看到任何解决方案?有任何想法吗?

更新 以下代码确实有效,但仍未接近找到原始问题的解决方案。

0 投票
1 回答
92 浏览

c# - 在自动化运行期间阻止光标移动

我正在为我的 WPF 应用程序使用 Teststack 白色框架(C#、.net)编写一些自动化测试。我希望在测试运行时冻结任何光标移动。有没有办法做到这一点?

我已经试过了

但它不起作用,因为我的应用程序没有以管理员权限运行

我试过 NativeMethods.BlockInput(true);

我收到拒绝访问异常