我遇到了与 Robotium 一起使用的 searchText() 函数的问题。
我正在寻找这个字符串:
<string name="provisioning_wizard_title_2">Service Activation Wizard (Step 2)</string>
我在字符串 xml 中定义了它,并以这种方式搜索它:
Activity act=solo.getCurrentActivity();
String string = solo.getString(act.getResources().getIdentifier("provisioning_wizard_title_2", "string", act.getPackageName()));
当我打电话时它失败了
assertTrue(solo.searchText(string));
如果我打电话,它也会失败:
assertTrue(solo.searchText("Service Activation Wizard (Step 2)"));
即使那是我在聚焦屏幕活动中看到的字符串。
奇怪的是,如果我使用没有最后一个字符的相同字符串,它会起作用:
assertTrue(solo.searchText("Service Activation Wizard (Step 2"));
如果我使用它就可以了
assertTrue(solo.searchText(string.substring(0, string.length()-1)));
我希望有人能帮助我。
对不起我的英语不好!
谢谢你。
问题 解决了感谢 Renas Reda(Robotium 的创始人和维护者),我解决了问题。问题是由于 searchText() 中的正则表达式支持;有些角色会触发它。使用 Pattern.quote(string) 示例:Pattern.qoute("provisioning_wizard_title_2") 一切都很好!