Swift 如何在ui测试中设置应用程序窗口的大小和位置?
一点背景:我最近在我的应用程序中实现了一个拖放行为,在这里我可以从NSTableView中的Finder中拖动项目。现在我想为这个新功能编写一些ui测试 总体思路是将finder窗口移到屏幕左侧,将my application窗口移到屏幕右侧,然后执行拖放操作。拖放本身不是问题,问题在于所提到的窗口布局的设置。我找不到一个方便的方法来调整和移动这两个窗口。来自.net,我期望类似于Swift 如何在ui测试中设置应用程序窗口的大小和位置?,swift,cocoa,frame,xcuitest,Swift,Cocoa,Frame,Xcuitest,一点背景:我最近在我的应用程序中实现了一个拖放行为,在这里我可以从NSTableView中的Finder中拖动项目。现在我想为这个新功能编写一些ui测试 总体思路是将finder窗口移到屏幕左侧,将my application窗口移到屏幕右侧,然后执行拖放操作。拖放本身不是问题,问题在于所提到的窗口布局的设置。我找不到一个方便的方法来调整和移动这两个窗口。来自.net,我期望类似于app.window.setSize(…)或app.window.moveTo(…) 到目前为止,我尝试的是: 由
app.window.setSize(…)
或app.window.moveTo(…)
到目前为止,我尝试的是:
- 由于我在Mac电脑上安装了磁铁,我尝试了简单的方法,并将关键事件(控制+选项+箭头)发送到窗口。这不起作用,发送击键结果会发出错误蜂鸣音。在测试过程中手动执行此操作是有效的,所以我不知道到底是什么阻止Magnet重新排列窗口,但我想这与测试框架有关。我并没有深入研究这个问题,因为无论如何这是一个廉价的解决方案
- 根据屏幕尺寸拖动应用程序窗口的角,例如,对于左侧的窗口,我将角拖动到屏幕的左上角、左下角、中上角和中下角。这要求所有四个角在屏幕上都可见,但这是另一天的问题。解决方案通常是可行的,但问题是我从应用程序窗口的框架中获得的y坐标不是我所期望的。我确实通过
接收到应用程序窗口的位置。x坐标看起来不错,但y坐标完全偏离(与我预期的不同)app.windows.firstMatch.frame.origin
来源
或框架
成员的资源。关于如何面对这个问题,或者在哪里可以找到关于XUITest框架及其基本概念的文档,有什么想法吗?在这种情况下,这种方法没有帮助。我只在苹果文档档案中找到了macOS(或当时的OSX)应用程序的坐标系