Ich habe ein Android SDK drücken/klicken und auf Knopfdruck öffnet sich ein Webview, wo ich eine Schaltfläche wie unten ist die HTML-Ansicht dessen sehen:Wie man einen Knopf in WebView mit Espresso
<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>
Jetzt i‘ m versuchen zu drücken/klicken sie auf eine Schaltfläche mit dem folgenden, aber nichts funktioniert :(
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());
der obige Code keine Fehler wirft und erfolgreich ausgeführt aber nicht auf die Schaltfläche klicken.
schließlich die Täter herausgefunden. Während des Debuggens stieß ich auf 'Touchstart' und verursachte das Problem. Mein submitEventType wurde auf 'touchstart' gesetzt, aber als ich es auf 'click' setzte, begann meine Anweisung zu arbeiten. Es dauerte ein paar Tage, um herauszufinden. – k10