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