我正在编写一个跨平台自动化,我有一个 selenium 桌面驱动程序,我执行一些操作,在设备上启动我的服务,并在 android 设备上启动警报,我想接受警报,然后同时使用网络驱动程序和移动驱动程序执行某些功能。
Web 驱动程序工作正常,它在 Web 浏览器上执行所需的操作并在设备端创建警报。
因此,我的应用程序/服务已经在设备上启动,现在当我尝试设置 appium 功能时:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platform", "ANDROID");
capabilities.setCapability("version", "4.4");
capabilities.setCapability("automationName", "uiautomator2");
capabilities.setCapability("deviceName", "karnak");
capabilities.setCapability("platformVersion", "7.1");
capabilities.setCapability("noReset", "true");
capabilities.setCapability("autoGrantPermissions", "true");
capabilities.setCapability("appPackage", "xyz");
capabilities.setCapability("appActivity", ".abc");
capabilities.setCapability("optionalIntentArguments", payload);
Run Code Online (Sandbox Code Playgroud)
发生的情况是 appium 将终止我拥有的现有会话,并将安装应用程序并尝试使用提供的有效负载启动活动,该有效负载现在无效。
因此,有一种方法可以为设备上现有的正在运行的应用程序/服务创建移动驱动程序,而无需安装应用程序并重新启动它。
我发现您必须执行 noReset 但这似乎对我不起作用。我尝试提供 appWaitPackage 和 appWaitActivity 而不是 appPackage 和 appActivity ,但也没有用。
如果你们中有人知道我如何将移动驱动程序附加到现有的运行应用程序/服务,请告诉我。