如下面的图片所示,我们在自动化测试中,需要得到view控件的内容,但是因为某些原因,app不是让你轻易得到数据,这里提供一个思路来提取数据,当然不是最好的,大家有好的想法,欢迎指出。
思路:
- 长按内容。
- 在出现复制标签后,点击复制。
- 从剪切板读取内容。
代码:
UiObject res0 = new UiObject(new UiSelector().resourceId("com.9527.news:id/a1j"));
res0.longClick();
Thread.sleep(1000);
UiObject res1 = new UiObject(new UiSelector().resourceId("com.9527.news:id/c9q"));
res1.click();
Thread.sleep(1000);
Process process = Runtime.getRuntime().exec("am broadcast -a clipper.get");
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
String urlStr="";
String line="";
while ((line = br.readLine()) != null) {
urlStr+=line;
}
// Context context = InstrumentationRegistry.getContext();
//String test2= getTextFromClip();
System.out.println("value:"+ String.valueOf(urlStr));
关于clipper这里我们需要安装一个东东clipper.apk。参考:
https://github.com/majido/clipper
https://blog.csdn.net/SummerCloudXT/article/details/83828482