2012-01-19 3 views
0
#!/bin/python 
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice 
import time 
import commands 
import sys 
import string 
import random 

device = MonkeyRunner.waitForConnection(10) 

device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP) 
time.sleep(1) 
device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP) 

package = 'com.pak.pak1' 
activity = 'com.pak.pak1.Activity123' 
runComponent = package + '/' + activity 
device.startActivity(component=runComponent) 
time.sleep(1) 

device.touch(20, 90, MonkeyDevice.DOWN_AND_UP) 
time.sleep(2) 
device.touch(20, 90, MonkeyDevice.DOWN_AND_UP) 
#time.sleep(10) 
device.touch(450, 95, MonkeyDevice.DOWN_AND_UP) 

깨진 파이프 예외가

잘 작동하지만 일부 지연 (time.sleep (10))를 넣으면 다음 TI는이 오류를 제공

120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] Error getting the manager to quit 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice]java.net.SocketException: Broken pipe 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at java.net.SocketOutputStream.socketWrite0(Native Method) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at java.net.SocketOutputStream.write(SocketOutputStream.java:136) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at java.io.BufferedWriter.flush(BufferedWriter.java:236) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at com.android.monkeyrunner.MonkeyManager.sendMonkeyEventAndGetResponse(MonkeyManager.java:167) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at com.android.monkeyrunner.MonkeyManager.quit(MonkeyManager.java:288) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at com.android.monkeyrunner.adb.AdbMonkeyDevice.dispose(AdbMonkeyDevice.java:79) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at com.android.monkeyrunner.adb.AdbBackend.shutdown(AdbBackend.java:120) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:95) 
120119 10:31:24.823:S [main] [com.android.monkeyrunner.adb.AdbMonkeyDevice] at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:203) 
+0

당신이 <10 초 수면 시간이 같은 오류를받을 수 있나요? –

+0

예, 1 초가 지나도 시안 색 MOD 사용과 관련이 있는지는 알 수 없습니다. S – Lukap

+0

내 정보는 좋지는 않지만 매니저를 잃어 버렸기 때문에 깨진 파이프가 있다고 생각합니다. –

답변

0

글쎄, 내 cyanogenmod에 문제가 있다고 생각합니다. 휴대 전화에 새 OS를 설치 한 후 제대로 작동합니다. 문제는 스크립트에 나와 있지 않습니다. 버그가있는 cyanogenmod가 있습니다.

0

대기 연결 시간이 초과되면 예외가 발생합니다.

문서에서 영원히 timeout이 기본값으로 언급되었지만 장치 ID와 함께 더 높은 시간 제한 값을 설정하면이 문제가 해결되는 것으로 나타났습니다.

의 예 MonkeyRunner.waitForConnection (1000, "에뮬레이터-5554")