【问题标题】:Sikuli without sacrificing mouse and keyboardSikuli 不牺牲鼠标和键盘
【发布时间】:2016-11-06 17:39:41
【问题描述】:

我对Sikuli不是很熟悉。

  1. 我可以将 Sikuli 与 python 3.4 或仅 2.7 一起使用吗?
  2. 在 Sikuli 项目中,脚本接管了鼠标和键盘,这意味着您在运行时无法处理其他内容。显然这是对时间的极大浪费。有什么方法可以在同一台计算机上运行 Sikuli 并同时处理其他事情?
  3. 我对虚拟机不熟悉,但听说Sikuli有一些问题。有什么办法可以克服吗?

  4. 额外问题,如何将 Sikuli 脚本制作为 exe 文件,用户可以在桌面上单击并运行,而无需安装任何解释器?

【问题讨论】:

    标签: python python-2.7 python-3.x automation sikuli


    【解决方案1】:
    1. Sikuli 使用的不是 Python,而是 Jython。如果您需要更多信息,请联系 Jython official documentation
    2. Sikuli 正在使用 Java 机器人库来控制键盘和鼠标并物理控制两者。没有办法解决这个问题。
    3. Sikuli 与屏幕的视觉内容交互,并通过截取屏幕截图和检测预先保存的模式进行操作。因此不可能在后台运行它。
    4. VM 的主要问题与上一段中解释的相同。除非你有一个附有实际屏幕的虚拟机(基本上只是另一个桌面:))
    5. 由于 Sikuli 使用的是 Jython,您可以尝试将脚本打包到 jar 中。有一个关于该主题的相关问题here

    【讨论】:

    • 谢谢。所以要运行 sikuli(不是 .jar 文件),我需要安装 java,还是 jython 就足够了?如果用户移动鼠标,sikuli 会崩溃吗?有没有其他不接管鼠标的方式与 gui 交互?
    • @Nadav 通常,您不必安装它们,因为 Sikuli 已经预先打包了它所需的一切。如果您在 Sikuli 运行时尝试移动鼠标或使用键盘,它不会崩溃。看起来就像 2 个人将鼠标拖动到不同的方向,并且有人和你一起使用键盘。如果您有兴趣,请自己尝试感受一下。
    • @Nadav 如果不控制输入流,就无法让 Sikuli 工作。即使有可能,Sikuli 仍然需要访问您屏幕上的实际视觉内容,因此您仍然无法同时使用您的 PC。如果您关于“其他方式”的问题暗示使用其他自动化工具,那么答案是肯定的。有些工具无法控制输入。
    • 什么工具?还是根据您要自动化的程序而有所不同?
    • @Nadav 有很多不同的工具,你可以在这里查看(全部?)它们的列表:en.wikipedia.org/wiki/List_of_GUI_testing_tools。例如,我知道 AutoIt 可以在后台运行一些任务,而您仍然可以继续工作。你可以在这里阅读:en.wikipedia.org/wiki/AutoIt。显然,这些工具中的每一个都有其优点和缺点。其中一些也是封闭代码或付费(商业),如 QTP。
    【解决方案2】:
    1. 您实际上可以在做其他工作的同时使用 sikuli。不过,这不是直接通过 sikuli 完成的。我有一个脚本可以做到这一点,但我没有直接访问权限,所以我只会给出语义。这是使用 VNC 会话完成的。

      在 bash 脚本中,启动 vnc 会话

      将该 vnc 会话的显示指向 sikuli。

      Sikuli 然后在该 vnc 会话上工作,而您在机器上工作(或通过不同的 vnc 会话)

      这一切都必须由 bash 脚本管理,我不知道批处理/powershell 脚本(甚至是 python/perl 脚本)是否能够管理它,但是它回答了 #4最终用户体验点击运行(仍然需要解释器或打包到 jar 中)

      这适用于 unix 机器,我不知道 windows,因为我只使用 windows 作为 VNC 客户端

    如果我以后可以访问脚本,我会在此处发布相关部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多