如何在 Android Espresso Kakao 测试中单击 webview 按钮
Posted
技术标签:
【中文标题】如何在 Android Espresso Kakao 测试中单击 webview 按钮【英文标题】:How to click on webview button in Android Esspresso Kakao test 【发布时间】:2021-12-12 03:20:22 【问题描述】:我的 android 应用程序外部有一个 html 表单,其中部分如下所示:
<form action="https://cards-accept.bm.pl/secure_back/play/AW2E8CY8ZG" method="POST"><div class="form-row"><label for="PaRes" data-trans="PaRes"></label><div class="form-field"><textarea id="PaRes" name="PaRes" rows="10" cols="54"><dummy pareq></textarea></div></div><div class="form-row"><label for="MD">MD</label><div class="form-field"><input type="text" name="MD" id="MD" value="29cdce57-e7a1-475f-8243-b141bb2e162f" autocomplete="off"></div></div><div class="tac"><button type="submit" class="btn dark"><span>SUBMIT</span></button></div></form>
我需要在我的测试中点击按钮提交。 我试图通过这段代码来实现这一点,但失败了:
onScreen<MyScreen>
webView
withElement(Locator.CLASS_NAME, "btn dark")
click()
我有一个例外如下:
java.lang.RuntimeException: java.lang.RuntimeException: Error in evaluationEvaluation: status: 32 value: message=Compound class names not permitted hasMessage: true message: Compound class names not permitted
有没有办法以另一种方式点击提交按钮?
【问题讨论】:
【参考方案1】:不允许在类名中使用空格。空格用于将多个类分配给单个元素。
像这样更改按钮类名称:
<button type="submit" class="btn_dark">
和这个的java代码:
onScreen<MyScreen>
webView
withElement(Locator.CLASS_NAME, "btn_dark")
click()
【讨论】:
但我无法在 html 中更改我的类名...这在我的 android 应用程序之外 尝试获取按钮本身而不是 CLASS_NAME 或者获取类作为属性(我不知道是否有任何属性选择器?)【参考方案2】:解决我的问题是使用TAG_NAME
,幸运的是,我在这个html中只有一个button
标签
onScreen<MyScreen>
webView
withElement(Locator.TAG_NAME, "button")
click()
【讨论】:
以上是关于如何在 Android Espresso Kakao 测试中单击 webview 按钮的主要内容,如果未能解决你的问题,请参考以下文章
java 在Android测试中如何使用espresso-intents的示例
如何在 Android Espresso Kakao 测试中单击 webview 按钮
Android Marshmallow:使用 Espresso 测试权限?