Android UiDevice dumpWindowHierarchy在哪里创建文件?
我一直在尝试使用UIAutomator获得屏幕布局(逻辑内容,包括屏幕中视图的资源ID),但运气不好(因此,如果有人不使用dumpWindowHierarchy就知道这个问题的答案,我也会很感激) 我尝试以几种方式运行device.dumpWindowHierarchy(文件名),但似乎都不起作用: 文件创建:Android UiDevice dumpWindowHierarchy在哪里创建文件?,android,dump,android-uiautomator,ui-testing,Android,Dump,Android Uiautomator,Ui Testing,我一直在尝试使用UIAutomator获得屏幕布局(逻辑内容,包括屏幕中视图的资源ID),但运气不好(因此,如果有人不使用dumpWindowHierarchy就知道这个问题的答案,我也会很感激) 我尝试以几种方式运行device.dumpWindowHierarchy(文件名),但似乎都不起作用: 文件创建: File f = new File("dump.xml"); 或 或 我试着将这两个选项结合起来: device.dumpWindowHierarchy(f.getName());
File f = new File("dump.xml");
或
或
我试着将这两个选项结合起来:
device.dumpWindowHierarchy(f.getName());
或
使用这些组合中的任何一种
if(f.exists())
始终返回false(在运行dump方法之后)
这似乎不是权限错误,因为takeScreenshot方法似乎在/data/local/tmp中创建文件
我也试过跑步:
Runtime.getRuntime().exec("dump");
但它给出了以下错误:
Error running exec(). Command: [dump] Working Directory: null Environment: null
我正在运行这个
public class MainTester extends UiAutomatorTestCase{
public void testTry(){
UiDevice device = getUiDevice();
//code to open the app
//code explained above
}
}
您可以通过以下方式获得视图:
final String dumpXml=“dump.xml”;
最终文件转储=新文件(新文件(Environment.getDataDirectory(),
“本地/tmp”)(XML);
dump.mkdirs();
if(dump.exists()){
dump.delete();
}
UiDevice.getInstance().dumpWindowHierarchy(dumpXml)代码>Runtime.getRuntime().exec(“uiautomator dump/data/local/tmp/dump.xml”)
在设备外壳中运行uiautomator--help
时,它会说转储XML的默认位置是/storage/emulated/legacy/window_dump.XML
。当我在testApp中运行这一行时,它总是返回“killed”:Runtime.getRuntime().exec(“uiautomator dump/data/local/tmp/dump.XML”);有人能解释一下为什么吗?为什么要放“if(dump.exists()){dump.delete();}”?先删除mkdirs,然后再删除I如何更改dumXml的保存目录是没有意义的。我试图更改目录,但没有找到转储的xml文件。我只能在/data/local/tmp/local/tmp/目录中找到转储的xml文件
Runtime.getRuntime().exec("dump");
Error running exec(). Command: [dump] Working Directory: null Environment: null
public class MainTester extends UiAutomatorTestCase{
public void testTry(){
UiDevice device = getUiDevice();
//code to open the app
//code explained above
}
}