我想将字符串类型转换为int。我正在使用浓缩咖啡进行自动化。
根据用于点击对象onView(withid(R.id.btn_0).perform(click())
我有json文件,我已经在其中存储了对象
"btn_0": {
"ANDROID": "withId=R.id.btn_0"
}
现在,当我读取btn_0时,我得到了btn_0对象的字符串值,而withId()则为int。
注意:Integer.parseInt()将不起作用。
有人可以帮我吗?
答案 0 :(得分:1)
您可以使用Resources.getIdentifier()
方法将资源名称解析为整数,我为您准备了一个示例:
@Test
public void parseResourceIdTest() {
final Context context = InstrumentationRegistry.getTargetContext();
assertEquals(R.id.btn_0, parseResourceId(context, "btn_0"));
}
public static int parseResourceId(@NonNull Context context, @NonNull String string) {
return context.getResources().getIdentifier(string, "id", context.getPackageName());
}
答案 1 :(得分:0)
下面是解决方法,请尝试
while( i < withId.length()) {
num *= 10;
num += withId.charAt(i++) - '0';
}
此处提供此工作环境,请检查它:How do I convert a String to an int in Java?
答案 2 :(得分:0)
与其传递整个ID(例如“ R.id.modeName”),不传递“ modeName”
最终上下文上下文= InstrumentationRegistry.getTargetContext(); int obj = context.getResources()。getIdentifier(“ modeName”,“ id”,context.getPackageName()); onView(withId(obj))。perform(click());