Не удается найти путь к изображению в сценарии загрузки документов с помощью Sikuli с веб-драйвером

Не удается найти путь к изображению в скрипте загрузки документов с помощью Sikuli с веб-драйвером selenium, я использую последний Sikuli jar. Я получаю следующее сообщение об ошибке при выполнении следующего фрагмента кода:

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

2 ответа

У меня была такая же проблема при использовании этого вместе с Appium Driver. Я понял, что изображение, которое я снимал, используя мой макинтош, было не тем, что Сикули мог найти. Тогда есть два решения:

  1. Загрузите и установите Sikuli IDE и используйте его для моментальных снимков
  2. Используйте следующий код:

    import org.sikuli.script.FindFailed;

    import org.sikuli.script.Screen;

    публичный захват пустоты (String path){

    Экран экрана = новый экран ();

    . Screen.userCapture() сохранить (путь);

    }

Это, по сути, остановит экран и позволит вам вырезать изображение и сохранить его по указанному вами пути. Вы можете использовать IDE для запуска этого или создать исполняемый файл JAR для запуска из командной строки

"Согласно вашему заявлению, исключение: 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 секунд, пока изображение не появится на экране. Измените свой процент сходства, чтобы получить соответствие. Ваше изображение может быть другой формы, которая отображается в приложении.

Другие вопросы по тегам