Как нажать / нажать кнопку в WebView с помощью Espresso

У меня есть Android SDK, и после нажатия кнопки открывается веб-просмотр, где я вижу кнопку, вид html, как показано ниже:

<button type="button" class="button js-analytics-submit" id="submit-try-sample" data-analytics-category="Sample" data-analytics-label="Intro">
  <svg xmlns="http://www.w3.org/2000/svg" width="58" height="58" viewBox="0 0 58 58" id="button-logo
" class="button__logo">
  <path fill="currentColor" fill-rule="evenodd" d="M37.32 21.933l2.877-2.876-.626-.625c-5.04-5.043-13.247-5.043-18.29 0-4.832 4.833-5.03 12.568-.6 17.643l-2.876 2.875.625.625c5.042 5.043 13.247 5.043 18.29 0 4.832-4.832 5.03-12.567.6-17.642zm-14.79-2.25c4.144-4.144 10.76-4.344 15.142-.6l-1.64 1.64c-3.488-2.86-8.644-2.664-11.9.593-3.256 3.256-3.454 8.412-.594 11.9l-1.608 1.608c-3.743-4.382-3.542-11 .6-15.142zm12.94 18.642c-4.143 4.144-10.76 4.344-15.142.6l1.64-1.64c3.488 2.86 8.644 2.664 11.9-.593 3.256-3.256 3.454-8.412.594-11.9l1.608-1.608c3.743 4.382 3.543 10.998-.6 15.14z"></path>
</svg>
  <span class="button__wrapper" id="button-text">
    <span class="button__text">
      Let’s do this!
    </span>
  </span>
</button>

Теперь я пытаюсь нажать / нажать кнопку, используя следующее, но ничего не работает:(

onWebView().perform(script("return document.getElementById(\"submit-try-sample\").click()"));

onWebView().withElement(findElement(Locator.ID, "submit-try-sample")).perform(webClick());

onWebView().withElement(findElement(Locator.XPATH, "//button//span[contains(text(),'do this')]")).perform(webClick());

Приведенный выше код не выдает никаких ошибок и выполняется успешно, но не нажимает кнопку.

2 ответа

Добавьте следующую строку кода в раздел перед тестированием -

onWebView().forceJavascriptEnabled();   

Узнайте больше о веб-сайтах эспрессо http://www.qaautomated.com/2016/02/testing-web-views-using-espresso-web.html

Я не понял, что вы имеете в виду в своем ответе, но вот простой способ нажать на кнопку, когда у нее есть идентификатор (id="button-text").

Вы можете просто написать

onWebView().withElement(findElement(Locator.ID,"button-Text")).
perform(DriverAtoms.webClick());
Другие вопросы по тегам