2014-09-30 52 views
0
選擇模擬器

我試圖運行Selendroid時選擇模擬器,發現該標誌使用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,就像我想要做的那樣矯枉過正。

回答

0

使用此在您的腳本:

DesiredCapabilities capa=DesiredCapabilities.android(); 
capa.setCapability(SelendroidCapabilities.EMULATOR, true); 
capa.setCapability(SelendroidCapabilities.ANDROID_TARGET, DeviceTargetPlatform.ANDROID18); 
SelendroidDriver driver = new SelendroidDriver(capa); 
1

由於emulatorPort標誌的描述說,它用於指定一個新生成的仿真器的端口,而不是從已經運行的仿真器選擇。若要選擇已運行的仿真器,請使用類似

capa.setSerial("emulator-5554"); 

將5554替換爲所需仿真器的端口號。

相關問題