我正在使用本机android应用上的appium自动化
我有一个想从中获取文本的MobileElement
MobileElement likesElement = (MobileElement) driver.findElement(By.id("com.instagram.android:id/row_feed_textview_likes"));
然后我有了字符串
String likesVal = likesElement.getText();
当我运行System.out.println(likesVal);
时,它会打印:
Liked by you and 107 others
我需要删除除107
之外的所有内容,以便可以在likesVal
上运行parseInt
我尝试过
likesVal= likesVal.replaceAll("[*a-zA-Z_.-]", "");
likesVal= likesVal.replaceAll(" ", "");
StringUtils.deleteWhitespace(likesVal);
int likes = Integer.parseInt(likesVal);
System.out.println(likes);
但是我在java.lang.NumberFormatException For input string: "107 "
上获得了int likes = Integer.parseInt(likesVal);
在除去likesVal
以外的所有内容之后,为什么不删除likesVal
中“其他”之前的空格?
在除去likesVal
以外的所有内容之后,我需要打印“ 107”而不是“ 107”
答案 0 :(得分:1)
我建议使用模式替换所有非数字(\\D
)。喜欢,
String tmp = "Liked by you and 107 others";
// String likesVal = likesElement.getText().replaceAll("\\D+", "");
String likesVal = tmp.replaceAll("\\D+", "");
int likes = Integer.parseInt(likesVal);
System.out.println(likes);
输出
107
根据要求。