Я пытаюсь выбрать эмулятор при запуске Selendroid и обнаружил этот флаг
-emulatorPort «Укажите номер порта для запуска эмуляторов».
List of devices attached
emulator-5554 device
emulator-5558 device
Поскольку у меня работают два эмулятора, я хотел бы выбрать один или другой при запуске моих тестов. Поэтому я использую флаг при запуске selendroid
java -jar selendroid-standalone-0.11.0-with-dependencies.jar -app app.apk -emulatorPort 5554
Написанный мною тестовый код начинается с этого
SelendroidCapabilities capa = new SelendroidCapabilities("app.package.name:1.0);
capa.setCapability(SelendroidCapabilities.EMULATOR, true);
driver = new SelendroidDriver(capa);
Но теперь он вылетает, когда я запускаю свой тест
INFO: executing command: /Applications/Android/platform-tools/adb shell pm clear app.package.name
io.selendroid.exceptions.ShellCommandException: An error occured while executing shell command: /Applications/Android/platform-tools/adb shell pm clear app.package.name
at io.selendroid.io.ShellCommand.exec(ShellCommand.java:49)
at io.selendroid.android.impl.AbstractDevice.executeCommand(AbstractDevice.java:176)
at io.selendroid.android.impl.AbstractDevice.executeCommand(AbstractDevice.java:171)
at io.selendroid.android.impl.AbstractDevice.clearUserData(AbstractDevice.java:199)
at io.selendroid.server.model.DeviceStore.release(DeviceStore.java:81)
at io.selendroid.server.model.SelendroidStandaloneDriver.createNewTestSession(SelendroidStandaloneDriver.java:245)
at io.selendroid.server.handler.CreateSessionHandler.handle(CreateSessionHandler.java:42)
at io.selendroid.server.SelendroidServlet.handleRequest(SelendroidServlet.java:143)
at io.selendroid.server.BaseServlet.handleHttpRequest(BaseServlet.java:67)
at io.selendroid.server.http.ServerHandler.channelRead(ServerHandler.java:50)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:148)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.selendroid.exceptions.ShellCommandException: error: more than one device and emulator
error: more than one device and emulator
Похоже, что id не выбирает правильный эмулятор с помощью "-s emulator-5554", это ошибка или я совершенно неправильно понял флаг "-emulatorPort". Если я закрою один из эмуляторов, все будет нормально.
Или мне нужно использовать Selendroid Grid, это кажется излишним для того, что я пытаюсь сделать.