【问题标题】:How to click on captured image using sikuli如何使用 sikuli 点击捕获的图像
【发布时间】:2020-08-27 07:13:34
【问题描述】:

我是 Sikuli 的新手。我正在自动化一个可以选择上传文件的 Web 应用程序。 当我单击上传按钮时,它会打开一个弹出窗口。在该窗口中,我必须选择一个文件。我如何使用 sikuli 来做到这一点。 我使用的是 linux 操作系统,所以无法使用 AutoIT。

下面是我正在尝试的代码

 public static void imageClick()
     {
         Screen s= new Screen();
         try {

            s.capture();

            s.find("Desktop.png");
             s.click("Desktop.png",0);
             System.out.println("Desktop is selected");
        } catch (FindFailed e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

     }

Desktop.png 是我保存在项目中的图像文件。首先我搜索它然后点击它。

任何人都可以帮助我如何实现这一目标。任何帮助将不胜感激。

【问题讨论】:

  • 您可以捕获上传文件对话框中显示的文本框的确切屏幕截图。然后使用s.type() 方法发送文件路径。像这样的东西:s.type(new Pattern("./img/FileTextBox.png"),"/path/to/file/to/upload");
  • @mk08:实际上在我的情况下,文本框不会出现。
  • 哦,你能分享那个对话窗口的截图吗?可能可以考虑一些解决方法。
  • @mk08: 请检查我点击上传按钮时得到的对话框
  • 嗯,你可以先点击搜索,会在要搜索的文件中给出发送文本框。您可以在此处传递文件路径并以编程方式按 Enter 键。现在按 Tab 键突出显示搜索结果并单击底部的打开按钮。

标签: selenium-webdriver automation sikuli


【解决方案1】:

最后我按照以下方式完成了 首先将 sikuli jar 文件导入到您的项目中 捕获要单击的图像并将其保存到某个位置 例如。 /home/dev/Desktop/abc.png

屏幕 s = new Screen(); //创建屏幕类的对象 s.click("/home/dev/Desktop/abc.png");

【讨论】:

    【解决方案2】:
    public static void imageClick()
    {
        Screen s= new Screen();
        Pattern DesktpIcon = new Pattern("Desktop.png");
        s.click(DesktpIcon);
        System.out.println("Desktop is Clicked.");
    }
    

    【讨论】:

    • 请在您的答案中添加一些解释,以便其他人可以从中学习
    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 2016-11-06
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2016-01-02
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多