问题标签 [ui-automation]

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 投票
3 回答
464 浏览

python - python+windows自动化——windows有时会出现故障

我正在使用 Python 自动化一些 Windows 的东西,使用 PIL 来截取屏幕截图等。问题是,有时,在某些功能的深处,我会做一个time.sleep(1),我与之交互的 GUI 应用程序会在那一秒钟内冻结。这很奇怪,因为time.sleep在其他地方做不会导致冻结。我无法确切地确定是什么导致了冻结,什么没有。它发生在除主线程之外的线程和主线程中。

有任何想法吗?我觉得我只需要一个“放松”功能来让 Python 停止它正在做的任何事情,让目标 UI 恢复并刷新和处理输入,然后将其带回 Python。什么功能会做到这一点?(windowsSleep函数似乎就像 python 的一样time.sleep。)

0 投票
5 回答
48632 浏览

testing - Selenium Web 测试自动化框架最佳实践

我想知道您对开发 Web 测试自动化框架的最佳实践的评论

  1. 我基本上阅读了几个博客,最后对第 7 章中的“Selenium 1.0 测试工具:初学者指南”一书中列出的 David Burns 方法深信不疑。

  2. 将特定页面的所有方法和验证器保存在单独的类文件中,使其精炼、可维护。

  3. 我想知道使用设计模式设计自动化框架的优势。我不完全相信这是最好的方法。请添加您的建议。可能是我们可以列出其优缺点的每种方法

  4. 如果我们将所有步骤存储在数据库表中,获取并执行这些步骤会更好吗?在这种情况下,如果任何测试失败,这将在表中更新,我们可以选择性地只运行失败的测试。

  5. 此外,可以通过有选择地查询表来完成报告,并且可以通过作业从这些表中清除数据。保留测试输出文件中的结果/解析结果也很好。

  6. 如果此问题已在相关帖子中得到解答,请发布链接。在发布这个问题之前,我检查了一些帖子。

  7. 在网站中,用户与网站的交互是事件驱动的,用户与网站的交互方式可以是多种组合 A->B->C 或 A->C->B。进行所有可能的组合可提供最大的覆盖范围。基于模型的测试自动化涵盖所有可能的状态

  8. 模拟所有可能状态的功能回归的自动化套件将模拟所有用户场景

  9. 请分享您对上述问题的最佳实践/建议。对于上述所有实现 Dataproviders,我们可以在测试数据管理方面利用 XML 中的数据传递。

  10. 我们需要考虑什么设计方法来开发基于模型的测试自动化套件。

  11. 有没有人尝试使用框架http://www.w3qa.eu/framework.html。任何关于相同的评论/反馈,请提供

0 投票
4 回答
13217 浏览

gtk - 寻找 GtkWidget 的孩子

我需要能够以编程方式探索 GTK GUI 的结构。我有 GtkWidget,我想找到该小部件的任何子级。现在我知道 GtkContainer 具有查找子级的功能,并且 GtkContainer 是从 GtkWidget 派生的。

无论如何我可以检查一个小部件是否是一个 GtkContainer 然后执行转换?如果没有,有没有其他方法可以发现我所拥有的 GtkWidget 的孩子?

0 投票
1 回答
511 浏览

silverlight - 通过 System.Windows.Automation 在 Chrome 中访问 Silverlight 窗口

这可能是徒劳的,但我想知道是否有人有这样做的经验。

我正在尝试使用System.Windows.Automation(例如AutomationElement )访问托管在Google Chrome中的Silverlight应用程序。

我遇到的问题是 Chrome 在子进程中托管 Silverlight 应用程序。如果我试图找到“Silverlight Control” AutomationElement(通过使用主进程的 hWnd),它会失败。

如果我找到 Silverlight 主机子进程,它没有窗口句柄,如果我尝试使用子进程的句柄查找控件,它会失败。

我知道它在那里......我可以使用Inspect看到它

混蛋脸

但我只能通过单击Silverlight 应用程序并在 Inspect 中向上导航来找到它。我无法使用 AutomationElement.FindFirst 或 Inspect 从选项卡窗口向下导航。

就像在 IE 或 Firefox 中看不到的窗口和 Silverlight 插件之间存在断开连接,我不知道如何解决它。

有没有其他人能够做到这一点?

0 投票
3 回答
2337 浏览

python - 如何通过命令行填充 gui 应用程序中的文本框?

我正在用 python 设计一个NLP(自然语言处理)应用程序,我想使用以下UNL(通用网络语言)EnConverter,它是一个可执行的 gui - 3rd 方- 应用程序并且只能在 Windows 上工作(我没有它源代码) :


所以,我想知道的是如何编写一个调用此 EnConverter 并按下“设置”按钮的控制台应用程序,然后设法填充下图中的文本框:

当我单击“设置”按钮时,会显示上一个窗口...我希望我的应用程序填充这些文本框,然后按“确定”...当按“确定”按钮时,应用程序返回第一个窗口...应用程序(我的应用程序)要做的最后一件事是单击第一个窗口中的“ EnConvert ”按钮...请看第一张图片。

我知道这是可能的,因为我的教授已经在Perl中完成了这项工作......他拒绝告诉我怎么做!!!我已经研究了互联网,但我一无所获!

0 投票
2 回答
1065 浏览

xcode - 使用 Xcode UIAutomation,如何将我的后台应用程序带回 iPhone 上的前台?

我想真正的长短是如何通过 Xcode UIAutomation 将我的应用程序从后台状态带到前台状态?

任何想法任何人...?

0 投票
1 回答
2828 浏览

c# - UIAutomation 和远程桌面连接

我有一个应用程序可以在任意 Windows 应用程序上进行一些自动化操作。我一直在用记事本测试它。

在这个自动化过程中,我必须从代​​码中调用事件。我目前支持两种类型的事件,因为它们似乎是最常见的,InvokePatternExpandCollapsePattern

我使用可以远程桌面进入的计算机进行测试。但这很奇怪。当我通过远程桌面连接到计算机时,应用程序运行良好。当我与计算机断开连接时,我的代码停止为 ExpandCollapsePattern 工作(InvokePattern 工作正常)。我得到一个 InvalidOperationException。

文档说只有当节点被标记为 LeafNode 时才应该抛出这个。我收到 InvalidOperationException 的远程桌面有何不同?

这是我目前必须执行该事件的代码。

patternMenu 是使用 GetCurrentPattern 从 AutomationElement 获取的 ExpandCollapsePattern。

当我打印出该值时,ExpandCollapseState 的当前值是“Collapsed”。

编辑:我有没有机会知道为什么我被否决了,这是一个坏问题?我真的对正在发生的事情感到困惑,因为它似乎只在远程桌面关闭时才会失败。如果这是一个我应该知道答案的非常愚蠢的问题,我希望得到一个解释,然后投反对票。

与桌面交互的进程不是 Windows 服务。这是我在远程桌面进入计算机后启动的应用程序。是因为我锁定了桌面吗?

我在 Ubuntu 上使用“终端服务器客户端”登录 Windows 机器。按此应用程序上的关闭按钮是否会导致桌面锁定?

0 投票
4 回答
937 浏览

wpf - 龙自然说话在 WPF 子菜单上失败

我的 WPF 应用程序菜单无法与 Dragon Natually speak 一起使用,因此我假设其他屏幕阅读器和辅助功能软件。我希望我的软件能够很好地为我的盲人和残疾客户工作。为了找出我的错误,我还尝试了其他 WPF 应用程序,如 Visual Studio 2010 和 Expression Blend 4,但它们有相同的错误。在所有情况下,我都可以使用语音下拉主菜单标题,如“文件”、“编辑”、“帮助”——但永远不能激活“新建”、“打开”或“关闭”等子菜单项。我已经阅读了有关 Accessibility 和“UI Automation”的所有内容,我尝试过运行“UI Accessibility Checker”和“Snoop”,这些应用程序似乎也枚举了我的 Menu HEADERS OK,但不是那些菜单上的项目。为什么?

0 投票
1 回答
632 浏览

c# - WiPFlash、UIAutomation 右键单击

我正在使用WiPFlash来自动化 WPF 应用程序中的一些测试。

我需要自动化能够右键单击按钮并从上下文菜单中选择一个选项。

有没有人能够克服这个问题?如果有人成功了,我很乐意尝试不同的框架或方法。

0 投票
1 回答
2118 浏览

c# - 在 Visual Studio C# 中控制外部窗口

[编辑] 我打算为 VLC 播放器构建一些外部插件,因此我使用FindWindow函数类型来从我的程序中控制 VLC 播放器。

从您自己的窗口控制外部窗口的最佳编程实践是什么?
FindWindowEx最佳实践,还是FindWindow更好,或者是否有一些开发的库?FindWindowEx应该使用任何使用它的技巧吗?

[编辑] 此外,在许多情况下,标题可能因不同的语言而异,
因此hwnd = FindWindow(null, "Calculator")如果标题不是“计算器”而是“模拟器”[法语]或“Rechner”[德语],则可能无法正常工作。无论操作系统语言是什么,我如何确保它找到窗口?

还有另一个问题 - 是否有可能将我的应用程序锚定在 VLC 播放器旁边,这样 vlc 播放器窗口的任何移动也会移动我的应用程序?我找不到任何合适的功能。