【问题标题】:Not able to automate desktop application using sikuli无法使用 sikuli 自动化桌面应用程序
【发布时间】:2017-11-10 00:58:43
【问题描述】:

我正在使用 Sikuli 尝试自动化桌面应用程序以进行用户身份验证。 Sikuli 已经能够自动化几乎所有的事情,除了应用程序中出现弹出窗口的部分并禁用除弹出窗口本身之外的整个屏幕。当我尝试控制屏幕上的元素时,Sikuli 显示错误 Find failed

我曾尝试以管理员身份运行 Sikuli 和 eclipse,但没有成功。

我正在使用的代码:

Screen screen = new Screen(); 
Pattern pattern = new Pattern("xyz.PNG"); 
screen.click(pattern);

下图为:

【问题讨论】:

  • 在屏幕上显示弹出窗口时是否出现错误?您是否尝试与该弹出窗口进行交互,而此时出现错误?
  • 当弹出窗口出现在屏幕上时会发生 eclipse 错误.. 当错误发生时我正在尝试交互。
  • 请提供更多信息。发布您的代码并准确显示失败的位置,包括实际的错误消息。或许还可以添加一个屏幕截图。
  • 我使用的代码是一个简单的屏幕模式代码:Screen screen = new Screen();图案 pattern = new Pattern("xyz.PNG"); screen.click(模式);

标签: java eclipse automation sikuli


【解决方案1】:

可能是几件事:
- 你需要给它几秒钟的时间让弹出窗口显示出来,你可以使用wait()
- 尝试使您的脚本专注于弹出屏幕本身,因为您可以使用App.focusedWindow()

例如:

popupWindow = App.focusedWindow()
if (popupWindow.exists(<fillInImageName>)):
       # Do something... 

【讨论】:

  • 试过这个。它无法切换/聚焦到屏幕上出现的弹出窗口..
【解决方案2】:

脚本有问题的可能性很小。

  1. 您没有等待足够的时间让屏幕稳定下来。要测试该选项,只需明确添加一些等待时间,以确保在您尝试与之交互时您的对话框出现在屏幕上。
  2. 您的模式设置可能不正确。您尝试与之交互的对话的确切元素是什么?那是密码字段吗?请注意,直接匹配可能会很棘手,因为有一个光标(可能会闪烁)。如果是这种情况,请尝试直接输入而不是匹配该字段。同样,请允许适当的等待时间。

【讨论】:

  • 我正在使用代码 Keyboard keyboard = new DesktopKeyboard();键盘.type("abc");我正在使用 import import org.sikuli.api.robot.desktop.DesktopKeyboard;但它显示编译错误说 import .org.sikuli 无法解决
  • 不要使用这个类来打字。可以通过Screen 类进行输入,因为它扩展了支持直接输入的Region 类。所以s.type("abc") 可以工作(c 这里是Screen 的一个实例)。
猜你喜欢
  • 2023-02-18
  • 1970-01-01
  • 2018-11-15
  • 2017-09-10
  • 2018-02-16
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多