【问题标题】:Can not find Image path in Upload document script using Sikuli with webdriver在使用带有 webdriver 的 Sikuli 上传文档脚本中找不到图像路径
【发布时间】:2018-04-01 19:59:59
【问题描述】:

在使用带有 selenium Web 驱动程序的 Sikuli 上传文档脚本中找不到图像路径,我使用的是最新的 Sikuli jar。运行跟踪代码 sn-p 时出现以下错误:

Screen src = new Screen();
Match addFile= src.find("C:\\Users\\Inknopwledge\\Desktop\\TestSikuli\\Capture.PNG");


FindFailed: can not find C:\Users\Inknopwledge\Desktop\Sikuli\Capture.PNG on the screen.
Line ?, in File ?
    at org.sikuli.script.Region.handleFindFailed(Region.java:420)
    at org.sikuli.script.Region.wait(Region.java:511)
    at org.sikuli.script.Region.find(Region.java:381)
    at pagefactory.profile_section.ResearchandExp_pageFact.click_Attach_Documents(ResearchandExp_pageFact.java:195)
    at TestCase.ResearchandExpertise_TC.attach_Document_to_Research(ResearchandExpertise_TC.java:311)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Unable to upload document [Ljava.lang.StackTraceElement;@17c395e

【问题讨论】:

    标签: selenium-webdriver sikuli-script


    【解决方案1】:

    “根据您的声明,例外情况是:FindFailed: 在屏幕上找不到 C:\Users\Inknopwledge\Desktop\Sikuli\Capture.PNG。

    当在 3 秒内未在屏幕上找到具有给定路径的图像时发生此异常(在 sikuli 中查找操作的默认自动等待超时为 3 秒),默认相似度为 0.7

    您可以等待加载图像,然后使用 find 命令或使用:

    Screen s = new Screen();
    Pattern p = new Pattern ("img path/path").similar( (float) 0.7);
    if (s.exists(p , 7) != null) {
    Match match = s.getLastMatch();
    }
    

    上面的命令等待 7 秒以使图像出现在屏幕上。更改您的相似度百分比以获得匹配。您的图像可能与应用上显示的形式不同。

    【讨论】:

    • 谢谢 Umesh,我在 sn-p 上面试过了。但是得到 [error] Can't create OS Util: org.sikuli.script.Win32Util error at Line Screen s= new Screen();
    • 请查看链接:bugs.launchpad.net/sikuli/+bug/893909 这是错误并出现在某些机器上。请尝试使用 |Region 对象而不是 Screen 对象。像这样:区域 r = 新区域 (....); r.exists ....
    • Thnx 我正在使用以下代码使用 sikuli 输入文件位置,但是有没有办法根据不同的系统指定动态位置.. if (src.exists(fileName, 10) != null) { System.out.println("文件名模式存在..");匹配匹配 = src.getLastMatch();匹配.find(文件名);匹配点击(文件名); match.type(fileName, "Z:\\mentis_test_v2\\Sikuli\\20150429-NSFBio-Gray.docx"); match.setAutoWaitTimeout(50); }
    【解决方案2】:

    在将它与 Appium Driver 结合使用时,我遇到了同样的问题。我意识到我用我的 mac 截取的图像不是 Sikuli 能找到的。那么有两种解决方案:

    1. 下载并安装 Sikuli IDE 并将其用于快照
    2. 使用以下代码:

      导入 org.sikuli.script.FindFailed;

      导入 org.sikuli.script.Screen;

      public void 捕获(字符串路径){

      屏幕屏幕 = new Screen();

      screen.userCapture().save(路径);

      }

    这基本上会冻结屏幕并允许您剪切图像并将其存储在您提到的路径中。您可以使用 IDE 运行它或创建一个可执行的 jar 文件以从命令行运行它

    【讨论】:

      猜你喜欢
      • 2017-03-07
      • 2015-10-28
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      相关资源
      最近更新 更多