Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android UiDevice dumpWindowHierarchy在哪里创建文件?_Android_Dump_Android Uiautomator_Ui Testing - Fatal编程技术网

Android UiDevice 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());

我一直在尝试使用UIAutomator获得屏幕布局(逻辑内容,包括屏幕中视图的资源ID),但运气不好(因此,如果有人不使用dumpWindowHierarchy就知道这个问题的答案,我也会很感激)

我尝试以几种方式运行device.dumpWindowHierarchy(文件名),但似乎都不起作用:

文件创建:

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
     }
}