2016-11-15 1 views
0

Ich versuche, yandex.allure mit testng zu verwenden. Mein Testanruf nächste Methode:Tests schlägt fehl, wenn in der Methode mit yandex.allure annotaion @Step ausgelöst wurde Ausnahme

Methode gibt false zurück, aber der Test schlägt fehl.

org.openqa.selenium.NoSuchElementException: Can't locate an element by this strategy: Locator map: 
- native content: "By.xpath: //*[@resource-id='ru.tfw_mob.devtest:id/menu_overflow']" 
- html content: "by id or name "mainMenuBtn"" 
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' 
System info: host: 'vitekes', ip: '192.168.200.1', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_102' 
Driver info: driver.version: unknown 

    at io.appium.java_client.pagefactory.AppiumElementLocator.findElement(AppiumElementLocator.java:110) 
    at io.appium.java_client.pagefactory.interceptors.InterceptorOfASingleElement.intercept(InterceptorOfASingleElement.java:57) 
    at io.appium.java_client.android.AndroidElement$$EnhancerByCGLIB$$c898a80.toString(<generated>) 
    at java.text.MessageFormat.subformat(MessageFormat.java:1280) 
    at java.text.MessageFormat.format(MessageFormat.java:865) 
    at java.text.Format.format(Format.java:157) 
    at java.text.MessageFormat.format(MessageFormat.java:841) 
    at ru.yandex.qatools.allure.aspects.AllureAspectUtils.getTitle(AllureAspectUtils.java:65) 
    at ru.yandex.qatools.allure.aspects.AllureStepsAspects.createTitle(AllureStepsAspects.java:70) 
    at ru.yandex.qatools.allure.aspects.AllureStepsAspects.stepStart(AllureStepsAspects.java:42) 
    at tfw.qa.mobile.core.drivers.commands.DriverCommandsImpl.isElementPresent(DriverCommandsImpl.java:144) 
    at tfw.qa.mobile.pages.elements.MainPageElements.isMainMenuOpenerVisible(MainPageElements.java:149) 
    at tfw.qa.mobile.pages.android.MainPage.isMainMenuOpenBtnVisible(MainPage.java:29) 
    at tfw.qa.mobile.pages.android.LoginPage.logout(LoginPage.java:42) 
    at tfw.qa.mobile.demo.BaseTest.tearDownAction(BaseTest.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86) 
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:514) 
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:215) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:707) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) 
    at org.testng.TestRunner.privateRun(TestRunner.java:782) 
    at org.testng.TestRunner.run(TestRunner.java:632) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:268) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169) 
    at org.testng.TestNG.run(TestNG.java:1064) 
    at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72) 
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:124) 

Ohne @Step Test funktioniert gut. Fehler wird auch mit anderen Anmerkungen wie @ Attachment und anderen wiederholt. Kann jemand erklären, warum das passiert?

Antwort

0

Es scheint, dass @Step instanziieren AndroidElement und Trigger findElement-Methode, die NoSuchElementException verursacht. Fügen Sie die Hilfsmethode mit @Step Annotation und String Parameter hinzu und rufen Sie sie unter isElementPresent() an. Pass einfach AndroidElement.toString() in.

Verwandte Themen