如何在Xamarin.UiTest中通过Label标签(自动化ID)操作元素?
如何在Calabash中与带Label标签的Xamarin.Forms元素交互
我之前调试Xamarin.Forms应用时也碰到过这个情况——Calabash的tree输出里的label,其实就是我们在Xamarin.Forms控件上设置的AutomationId,这是Calabash识别元素的核心标识之一。针对你要点击label: "TermsAndConditions_btn"元素的需求,可以按下面的步骤操作:
1. 先验证元素可被定位
在Calabash的REPL环境里,先执行查询命令确认元素存在:
query("* label:'TermsAndConditions_btn'")
如果返回了对应的元素结构,说明定位路径没问题;要是没找到,记得检查拼写是否和tree输出里的完全一致(大小写、特殊字符都要对应上)。
2. 执行点击操作
确认元素存在后,直接用tap命令完成点击:
tap("* label:'TermsAndConditions_btn'")
更精准的定位技巧
如果担心有重名的label(虽然我们一般会保证AutomationId唯一),可以结合元素类型缩小范围。从你的tree输出里能看到这个按钮是Platform_DefaultRenderer类型,所以也可以这么写:
tap("Platform_DefaultRenderer label:'TermsAndConditions_btn'")
其他带label的元素交互逻辑也是一样的——比如要获取TermsAndConditions_lbTitle的文本,就用query("* label:'TermsAndConditions_lbTitle'").first["text"];要点击其他元素,替换对应的label值就行。
内容的提问来源于stack exchange,提问作者Suban Dhyako
相关产品推荐
相关产品推荐

