Android 如何使用Espresso在WebView中按下/单击按钮

Android 如何使用Espresso在WebView中按下/单击按钮,android,android-testing,android-espresso,android-espresso-recorder,Android,Android Testing,Android Espresso,Android Espresso Recorder,我有一个android SDK,按下一个按钮就会打开一个Webview,在这里我可以看到一个按钮,其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

我有一个android SDK,按下一个按钮就会打开一个Webview,在这里我可以看到一个按钮,其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>

上面的代码没有抛出任何错误并成功执行,但它没有单击按钮。

我不明白您在回答中的意思,但这里有一个简单的方法,可以在按钮有ID(ID=“button text”)时单击按钮

你可以简单地写

onWebView().withElement(findElement(Locator.ID,"button-Text")).
perform(DriverAtoms.webClick());

我不明白你们在回答中的意思,但这里有一个简单的方法,当按钮有一个ID(ID=“Button text”)时,点击它

你可以简单地写

onWebView().withElement(findElement(Locator.ID,"button-Text")).
perform(DriverAtoms.webClick());

在测试前部分添加以下代码行-

onWebView().forceJavascriptEnabled();   

阅读有关Espresso网络视图的更多信息

在测试前部分添加以下代码行-

onWebView().forceJavascriptEnabled();   

阅读更多有关浓缩咖啡网络视图的信息

最终找到了罪魁祸首。在进一步调试时,我了解到“touchstart”是导致问题的原因。我的submitEventType设置为“touchstart”,但当我将其设置为“click”时,我的语句开始工作。花了几天的时间才弄清楚。终于找到了罪犯。在进一步调试时,我了解到“touchstart”是导致问题的原因。我的submitEventType设置为“touchstart”,但当我将其设置为“click”时,我的语句开始工作。花了几天的时间才弄明白。感谢Anuja的回复!是的,我在执行操作之前设置了它。顺便说一句,这是eventType绑定的一个问题,因为它无法识别“touchStart”。它与“点击”配合得很好,感谢Anuja的回复!是的,我在执行操作之前设置了它。顺便说一句,这是eventType绑定的一个问题,因为它无法识别“touchStart”。在我的应用程序源代码中,按钮的eventType设置为“touchStart”,因此我的测试无法单击按钮。当eventType从“touchStart”更改为“click”时,它起作用了。希望这有帮助。在我的应用程序源代码中,按钮的eventType设置为“touchStart”,因此我的测试无法单击按钮。当eventType从“touchStart”更改为“click”时,它起作用了。希望这有帮助。