Java AWS设备场上的Appium/TestNG脚本-找不到元素

Java AWS设备场上的Appium/TestNG脚本-找不到元素,java,amazon-web-services,testng,appium,aws-device-farm,Java,Amazon Web Services,Testng,Appium,Aws Device Farm,我正在AWS设备场上使用java设置Appium/TestNG脚本,使用教程: 在我编译并上传'zip with dependencies.zip'到AWS设备场并在设备上运行测试之后,我得到一个错误,脚本中的第一个可单击元素找不到。 因此,安装和拆卸套件正在通过运行,但实际测试每次都失败: 我的问题是,我是否在配置中遗漏了什么,或者脚本是否需要任何额外的所需功能,以便在AWS设备场上实际执行测试?两个建议: 1.将元素等待时间设置为小于60秒,因为默认的Appium会话在此之后将超时。 2.

我正在AWS设备场上使用java设置Appium/TestNG脚本,使用教程: 在我编译并上传'zip with dependencies.zip'到AWS设备场并在设备上运行测试之后,我得到一个错误,脚本中的第一个可单击元素找不到。 因此,安装和拆卸套件正在通过运行,但实际测试每次都失败:

我的问题是,我是否在配置中遗漏了什么,或者脚本是否需要任何额外的所需功能,以便在AWS设备场上实际执行测试?

两个建议: 1.将元素等待时间设置为小于60秒,因为默认的Appium会话在此之后将超时。 2.创建故障的屏幕截图,检查元素是否正确加载

希望这会有所帮助:)

谢谢,
宏达

我用另一个应用程序更改了测试应用程序的版本,看起来像是上一个版本,其中找不到元素时弹出了一条android系统消息,无法使用提供的代码单击该消息,因此无法找到搜索到的元素。
device farm不擅长的另一件事是提供运行测试的实时观察,这可以在这种情况下节省大量时间。

为仍面临此问题的人解答此问题

您必须为用于自动化测试的自动化机制设置
automationName
所需的功能

对我来说,将其设置为
uiautomator2
很有效

capabilities.setCapability("automationName", "uiautomator2");

感谢您的建议,将元素等待时间设置为30秒不起作用,仍然无法定位。我使用appium服务器和emulator在本地运行相同的测试,每次都会运行脚本。我注意到的另一件事是,当使用“mvn clean package-DskipTests=true”命令编译“zip with dependencies.zip”时,然后尝试在我的appium服务器上本地运行脚本时,它们无法执行。我尝试了另一件事——我删除了测试脚本中所有元素的点击,只留下了一些滑动操作和wd.closeApp(); 和wd.launchApp();最后。然后,脚本成功执行,并传入设备场。因此,问题在于元素的定位,是否在打包时需要的jar位于项目文件夹中而不是“Maven依赖项”中?我对第一个元素使用的代码是:wait.until(ExpectedConditions.elementtobelickable(By.id(“wt_sign_in”));睡眠(1500);wd.findElementById(“wt_sign_in”)。单击();