我想知道如何与空间发送文本中的Android UIAutomator -e选项(名称值对)
对于例如:
亚行外壳uiautomator的runTest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
我想送样
亚行外壳uiautomator的runTest LaunchSettings.jar -c com.uia.example.my.LaunchSettings -e APPNAME神庙逃亡
但是,得到错误信息,如:
不支持独立的参数。
试图像“神庙逃亡”或“神庙逃亡”,但没有用。
请建议
String defaultAppName = "My super App";
String toAppName = getParams().getString("appName"); //pass app name with 'appName' key
if (toAppName != null) {
toAppName = toAppName.replace("0"," "); //use 0 instead of space in app name
defaultAppName=toAppName.trim();
}
如果没有-e选项(名称 - 值对)进行此测试时获得通过上面的代码将默认为“我的超级应用”。
与空间传递参数,如“我的超级dooper应用”,根据上面的代码,将被插入对于每个空间0需求。
要通过“我的超级dooper应用”作为参数传递给上面的代码,一个需要发送的使用:
-e appName "my0super0dooper0app"
你的情况:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings -e appName Temple0Run
(而不是“0”可以插入任何字母数字字符作为占位符所示例子中下面)
UiAutomator不了解命令行参数空间,&,<,>,(,),”,“,以及一些Unicode字符。在这种情况下,一个具有与期望的符号以取代在命令行的占位符。
例:
if (toParam != null) {
toParam = toParam.replace("0space0", " "); //insert 0space0 in command line parameters for every space
toParam = toParam.replace("0amper0", "&"); //insert 0amper0 in command line parameters for every &
toParam = toParam.replace("0less0", "<"); //insert 0less0 in command line parameters for every <
toParam = toParam.replace("0more0", ">"); //insert 0more0 in command line parameters for every >
toParam = toParam.replace("0openbkt0", "("); //insert 0openbkt0 in command line parameters for every (
toParam = toParam.replace("0closebkt0", ")"); //insert 0closebkt0 in command line parameters for every )
toParam = toParam.replace("0onequote0", "'"); //insert 0onequote0 in command line parameters for every '
toNumber = toParam.trim();
}
文章来源: How to send text with space in Android UIAutomator -e command line parameter