Java 未安装Appium-AUT

Java 未安装Appium-AUT,java,ios,selenium,appium,Java,Ios,Selenium,Appium,我正在测试iOS应用程序(在真实设备上),遇到以下错误: org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。有关详细信息,请查看服务器日志。原始错误:未安装AUT。(警告:服务器未提供任何stacktrace信息)。 如果有人能指出Selenium抛出此错误的原因,这将是很有帮助的。我能够手动连接到UFT移动设备,它工作正常 我的代码是: import io.appium.java_client.ios.IOSDriver; 导

我正在测试iOS应用程序(在真实设备上),遇到以下错误:

org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。有关详细信息,请查看服务器日志。原始错误:未安装AUT。(警告:服务器未提供任何stacktrace信息)。
如果有人能指出Selenium抛出此错误的原因,这将是很有帮助的。我能够手动连接到UFT移动设备,它工作正常

我的代码是:

import io.appium.java_client.ios.IOSDriver;
导入io.appium.java_client.ios.ios元素;
导入io.appium.java_client.remote.MobileCapabilityType;
导入io.appium.java_client.remote.IOSMobileCapabilityType;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入org.testng.annotations.postest;
导入org.testng.annotations.BeforeSuite;
导入org.testng.annotations.Test;
导入java.net.URL;
导入java.net.MalformedURLException;
导入java.util.concurrent.TimeUnit;
//扩展BaseTest\u手机描述
公共类应用程序测试{
公共静态驱动程序appDriver;
公共静态期望能力;
@套房前
public void setupAppium()引发畸形的异常{
能力=新的所需能力();
能力.setCapability(MobileCapabilityType.DEVICE_NAME,“iPhone X”);
能力.setCapability(MobileCapabilityType.PLATFORM_NAME,“iOS”);
能力。设置能力(MobileCapabilityType.PLATFORM_版本,“13.7”);
能力。设置能力(“用户名”、“用户名”);
能力。设置能力(“密码”、“密码”);
setCapability(iosmobilecapabilitype.BUNDLE_ID,“abc.def.geh”);
appDriver=新IOSDriver(新URL(“http://127.0.0.1:8443/wd/hub(能力),;
appDriver.manage().timeouts().implicitlyWait(2,TimeUnit.SECONDS);
appDriver.resetApp();
}
@事后
私有静态无效后测试(){
appDriver.resetApp();//清除所有应用程序数据和权限。
appDriver.quit();//结束Appium会话。
}
@Test(enabled=true)public void myFirstTest()引发InterruptedException{
appDriver.resetApp();
}
}

部分stacktrace附在这里。

经过多次尝试,我终于找到了一个适合我的解决方案

当弹出权限(如访问cam或存储器的权限)时,会发生此错误

如果您没有在自动化中授予权限,当一个测试失败并启动下一个测试时,弹出窗口不会消失,当Appium尝试查找您的应用程序时,它无法找到,因为权限弹出窗口与您的应用程序重叠

尝试查找需要某些权限的测试,并添加一个步骤以授予此权限

在我的例子中,project中的某个人删除了这一步骤,该步骤为摄影机提供了权限,因此,我的CI管道开始崩溃,当我返回到代码中的这一步骤时,此错误停止发生