Инструментальный тест: onWebView().withElement() вызывает сбой с сообщением «Оценка Atom вернула ноль» ⇐ Android
-
Anonymous
Инструментальный тест: onWebView().withElement() вызывает сбой с сообщением «Оценка Atom вернула ноль»
Я использую инструментальные тесты, чтобы проверить, что после загрузки страницы в WebView определенное поведение работает должным образом. В настоящее время у меня есть 3 теста, которые работают одинаково: дождитесь загрузки URL-адреса> проверьте заголовок страницы> выполните действие> проверьте результат.
Похоже, проблема возникает из-за того, что несколько функций вызывают один и тот же onWebView().withElement(findElement(Locator.CLASS_NAME, "my_title")). Тест, который завершается первым, завершается успешно, как и ожидалось, но последующие тесты завершаются со следующей ошибкой:
java.lang.RuntimeException: java.lang.RuntimeException: оценка Atom вернула ноль! в androidx.test.espresso.web.sugar.Web$WebInteraction$ExceptionPropagator.(Web.java:4) в androidx.test.espresso.web.sugar.Web$WebInteraction.doEval(Web.java:17) в androidx.test.espresso.web.sugar.Web$WebInteraction.withElement(Web.java:2) Я вызываю reset(), который изначально отсутствовал, поэтому я предположил, что это проблема, однако его добавление не решило проблему. См. код ниже:
@get:Rule var ActivityScenarioRule = ActivityScenarioRule(BrowserActivity::class.java) @Тест весело page_loads_and_can_navigate_via_footer() { onWebView() .withElement(findElement(Locator.CLASS_NAME, "my_title")) .withNoTimeout() .check(webMatches(getText(), containsString("title_1"))) .withElement(findElement(Locator.ID, "footer_option_2")) .perform(webClick()) .withElement(findElement(Locator.CLASS_NAME, "my_title")) .check(webMatches(getText(), containsString("title_2"))) .перезагрузить() } @Тест весело can_refresh_cache_in_debug_mode() { onWebView() .withElement(findElement(Locator.CLASS_NAME, "my_title")) .withNoTimeout() // СДЕЛАТЬ ТЕСТ .перезагрузить() } @Тест весело can_change_url_in_debug_mode() { onWebView() .withElement(findElement(Locator.CLASS_NAME, "my_title")) .withNoTimeout() // СДЕЛАТЬ ТЕСТ .перезагрузить() } Есть ли что-то, что мне здесь не хватает? Или, возможно, я как-то неправильно провожу эти тесты?
Я использую инструментальные тесты, чтобы проверить, что после загрузки страницы в WebView определенное поведение работает должным образом. В настоящее время у меня есть 3 теста, которые работают одинаково: дождитесь загрузки URL-адреса> проверьте заголовок страницы> выполните действие> проверьте результат.
Похоже, проблема возникает из-за того, что несколько функций вызывают один и тот же onWebView().withElement(findElement(Locator.CLASS_NAME, "my_title")). Тест, который завершается первым, завершается успешно, как и ожидалось, но последующие тесты завершаются со следующей ошибкой:
java.lang.RuntimeException: java.lang.RuntimeException: оценка Atom вернула ноль! в androidx.test.espresso.web.sugar.Web$WebInteraction$ExceptionPropagator.(Web.java:4) в androidx.test.espresso.web.sugar.Web$WebInteraction.doEval(Web.java:17) в androidx.test.espresso.web.sugar.Web$WebInteraction.withElement(Web.java:2) Я вызываю reset(), который изначально отсутствовал, поэтому я предположил, что это проблема, однако его добавление не решило проблему. См. код ниже:
@get:Rule var ActivityScenarioRule = ActivityScenarioRule(BrowserActivity::class.java) @Тест весело page_loads_and_can_navigate_via_footer() { onWebView() .withElement(findElement(Locator.CLASS_NAME, "my_title")) .withNoTimeout() .check(webMatches(getText(), containsString("title_1"))) .withElement(findElement(Locator.ID, "footer_option_2")) .perform(webClick()) .withElement(findElement(Locator.CLASS_NAME, "my_title")) .check(webMatches(getText(), containsString("title_2"))) .перезагрузить() } @Тест весело can_refresh_cache_in_debug_mode() { onWebView() .withElement(findElement(Locator.CLASS_NAME, "my_title")) .withNoTimeout() // СДЕЛАТЬ ТЕСТ .перезагрузить() } @Тест весело can_change_url_in_debug_mode() { onWebView() .withElement(findElement(Locator.CLASS_NAME, "my_title")) .withNoTimeout() // СДЕЛАТЬ ТЕСТ .перезагрузить() } Есть ли что-то, что мне здесь не хватает? Или, возможно, я как-то неправильно провожу эти тесты?
Мобильная версия