无法创建新会话。 (原始错误:命令失败:)Appium错误
我正在为Android设备进行自动测试。 在模拟器中它工作正常。在连接到设备时,它会创建&将安装unlock.apk安装到Android设备。之后,下面的错误即将到来无法创建新会话。 (原始错误:命令失败:)Appium错误
我已在下面设置配置 DesiredCapabilities功能= DesiredCapabilities.android(); capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,“”);
capabilities.setCapability("deviceName", "Moto C Plus");
//capabilities.setCapability("deviceName", "ZZ22cdddP9");
// capabilities.setCapability("udid", "ZZ22cdddP9");
capabilities.setCapability("platformVersion", "7.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("browserName", "chrome");
//capabilities.setCapability("Device Id", "xxxxxxxx");
capabilities.setCapability("app", "D:\\abc.apk");
capabilities.setCapability("appPackage", "com.s.abc");
capabilities.setCapability("appActivity", "com.s.sn");
在初始化您的appium驱动程序之前添加以下代码。
String cmd = "adb shell getprop ro.build.version.release";
String osVersion=executeCommand(cmd);
if(osVersion.contains("7"))
{
//uninstall io.appium.settings
cmd="adb uninstall io.appium.settings";
executeCommand(cmd);
//uninstall io.appium.unlock
cmd="adb uninstall io.appium.unlock";
executeCommand(cmd);
}
public String executeCommand(String cmd)
{
String commandresponse="";
try
{
Runtime run = Runtime.getRuntime();
Process proc=run.exec(cmd);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(proc.getErrorStream()));
String response=null;
while ((response = stdInput.readLine()) != null)
{
if(response.length()>0)
{
commandresponse=commandresponse+response;
}
}
while ((response = stdError.readLine()) != null)
{
commandresponse=commandresponse+response;
}
}
catch(Exception e)
{
e.printStackTrace();
}
//System.out.println(commandresponse);
return commandresponse;
}
Set following capabilities only and try to start appium :
Note : deviceName should be name which we will get using "adb devices" command.
capabilities.setCapability("deviceName", "ZZ22cdddP9");
capabilities.setCapability("platformVersion", "7.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", "D:\\abc.apk");
capabilities.setCapability("appPackage", "com.s.abc");
capabilities.setCapability("appActivity", "com.s.sn");
我的问题是当我注释掉capabilities.setCapability(“appActivity”,“com.splashAnimation.SplashAnimation”);这个我的应用程序是在我的手机午餐..但是当我取消注释上线应用程序不是午餐..最后在我的测试用例元素没有定位错误即将到来 – Vijay
我该怎么做.. plese建议我..设置设备名称与实际作为“三星”或adb设备,即“zz22cdddP9”是好的..都是相同的,但在我的情况下..我的应用程序不是午餐..当我做//capabilities.setCapability(“appActivity”,“com.splashAnimation.SplashAnimation “); 。应用程序正在执行测试,但它找不到执行测试用例所需的元素。 – Vijay
我已经做了同样的方式,因为您建议..请帮助我解决上述问题。同时添加会话overirde作为true&capabilities.setCapability( “noReset”,true); \t capabilities.setCapability(MobileCapabilityType.FULL_RESET,false); – Vijay
感谢希夫&维诺德,
终于解决了这些问题。我是把错误的活动名称。所以它正在关闭。通过设置下线的能力,它的工作很好capabilities.setCapability(“appActivity”,“com.example.main.LaunchActivity”);
capabilities.setCapability("deviceName", "ZZ22cdddP9");
capabilities.setCapability("platformVersion", "7.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", "D:\\abc.apk");
capabilities.setCapability("appPackage", "com.s.abc");
capabilities.setCapability("appActivity", "com.example.main.LaunchActivity");
要设置设备名称=设备序列号,这是不对的。 udid = deviceSerialNumber是正确的。 – Vinod
我曾试过这种方式也有相同的错误 – Vijay
你甚至可以在真实设备上运行appium。你能帮我分享一下你的配置代码吗?当运行应用程序io.appium.unlock&io.appium.setting正在安装在移动但会话不创建运行测试案例 – Vijay