如何单击不是由我创建的Java工具栏中的按钮?

时间:2019-03-01 08:55:24

标签: python selenium-webdriver autoit uitoolbar

让我首先向您展示Java工具栏的屏幕截图。出于专有原因,我无法为您提供网站的网址。这是屏幕截图: enter image description here

现在,重点是单击“惊叹号”按钮。我在这里使用Python。我也确定硒无法检测到它,因为它是一个工具栏,并且不存在相应的html。我试图在这里使用AutoIT,但其查找工具未检测到它。我不想在这里使用Sikuli之类的脚本,因为它的不稳定性将是一个大胆的尝试。

有人可以在这方面帮助我吗?

2 个答案:

答案 0 :(得分:3)

  

我不想在这里使用Sikuli之类的脚本,因为它的不稳定性将是一个大胆的尝试。

我使用看图desktop automation,发现它的视觉自动化非常稳定-即使在机器之间移动脚本时也是如此。使用Kantu,解决方案很容易:

XClick | image of button here

或(使用OCR文本识别)

XClick | ocr=LEX 

其中“ LEX”将是按钮图标上的文本(正如我在您的屏幕截图中所看到的)。您可以通过command line启动Kantu,因此可以轻松地在Python中使用它。基本上,所有操作都是使用一个特殊的本地网站打开浏览器:

args = r'file:///' + path_autorun_html + '?macro=' + macro + '&cmd_var1=' + var1 + '&cmd_var2=' + var2 + '&cmd_var3=' + var3 + '&closeKantu=0&direct=1&savelog=' + log

proc = subprocess.Popen([browser_path, args])

Full python code here

编辑:为进一步说明这一点,Kantu不是python软件包,而是开源browser extension,并扩展了locally installed "xmodule"应用程序以获取桌面屏幕截图并控制鼠标和键盘。本地应用可用于Mac,Windows和Linux。

所以您需要做的是:

  1. Install Kantu和XModules

  2. Create是Kantu中的一个小宏。在您的情况下,此宏只能是一个命令XClick | ocr=LEX。保存宏e。 G。使用“ ClickButton”

  3. 一旦宏正常工作,您就可以通过command line从Python 启动Kantu和“ ClickButton”宏。

答案 1 :(得分:0)

对于这类问题,我通常使用 pyautogui

来解决。

以下是文档:https://pyautogui.readthedocs.io/en/latest/

此代码将在屏幕上找到图像并将鼠标移至图像中心:

 Map<String, String> connection = {

    "grant_type": "string",
    "branchcode": "string",
    "password": "string",
    "username": "string",
    "dbname": "string",
    "dbuser": "string",
    "dbpassword": "string",
    "dbtype": "string"

  };


  Uri apiUrl = Uri.http("192.168.1.23:7070", "/api/v2/token",connection);
  HttpClientRequest request = await new HttpClient().getUrl(apiUrl);
  HttpClientResponse response = await request.close();
  Stream resStream = response.transform(utf8.decoder);

  await for(var apiKey in resStream){
    print(apiKey);
  }
}

我听说有些人使用OpenCV获得了更好的结果,但是您可以随时进行测试