在Android Espresso Kakao测试中如何点击WebView内的SUBMIT按钮
报错根因
你遇到的Compound class names not permitted错误是因为Locator.CLASS_NAME仅支持传入单个类名,你要定位的按钮同时存在btn、dark两个类,直接传入空格分隔的多类名字符串不符合定位语法要求。
可用的定位实现方案
你可以选择以下任意一种更精准的定位方式实现点击:
方案1:使用CSS选择器定位(最推荐)
直接匹配同时包含两个类的提交按钮,代码示例:onScreen<MyScreen> { webView { withElement(Locator.CSS_SELECTOR, "button.btn.dark[type='submit']") { click() } } }也可以增加父元素限制进一步提升精准度,选择器改为
.tac > button.btn.dark即可。方案2:使用XPath定位
可以通过类名匹配、文本匹配两种写法实现:
按类名匹配示例:withElement(Locator.XPATH, "//button[contains(@class,'btn') and contains(@class,'dark')]") { click() }按按钮内文本匹配示例:
withElement(Locator.XPATH, "//span[text()='SUBMIT']/parent::button") { click() }方案3:直接提交表单
如果不需要模拟点击按钮的交互,也可以直接触发表单提交,代码示例:withElement(Locator.CSS_SELECTOR, "form[action^='https://cards-accept.bm.pl']") { performScript("submit()") }
内容的提问来源于stack exchange,提问作者K.Os
相关产品推荐
相关产品推荐

