Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ViewClient.ConnectToDeviceOrxit()有问题_Python_Monkeyrunner_Androidviewclient - Fatal编程技术网

Python ViewClient.ConnectToDeviceOrxit()有问题

Python ViewClient.ConnectToDeviceOrxit()有问题,python,monkeyrunner,androidviewclient,Python,Monkeyrunner,Androidviewclient,我最近开始在移动应用程序自动化中使用python,因为我决定使用python,我发现的主要工具是monkeyrunner和androidviewclient 但有一个问题我不知道该怎么办: package = 'com.mypackage.android' activity = '.launchActivity' component = package + "/" + activity device, serialno = ViewClient.connectToDeviceOrExit()

我最近开始在移动应用程序自动化中使用python,因为我决定使用python,我发现的主要工具是monkeyrunner和androidviewclient

但有一个问题我不知道该怎么办:

package = 'com.mypackage.android'
activity = '.launchActivity'
component = package + "/" + activity

device, serialno = ViewClient.connectToDeviceOrExit()
device.startActivity(component=component)


time.sleep(3)

vc = ViewClient(device, serialno)
vc.dump()

showMenu = vc.findViewById("id/no_id/8")
showMenu.touch()
当我在windows cmd-monkeyrunner mypath\test-case1.py中运行它时 我收到一个例外:

131213 18:42:32.555:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to an exception
131213 18:42:32.555:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last):
  File "C:\Python27\tests\1.py", line 26, in <module>
    device, serialno = ViewClient.connectToDeviceOrExit()
  File "C:\Program Files (x86)\Android\AndroidViewClient\AndroidViewClient-maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1381, in conne
ctToDeviceOrExit
    ViewClient.setAlarm(timeout+5)
  File "C:\Program Files (x86)\Android\AndroidViewClient\AndroidViewClient-maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1341, in setAl
arm
    signal.alarm(timeout)
  File "C:\Program Files (x86)\Android\android-sdk\tools\lib\jython-standalone-2
.5.3.jar\Lib\signal.py", line 222, in alarm
NotImplementedError: alarm not implemented on this platform
131213 18:42:32.555:S[MainThread][com.android.monkeyrunner.MonkeyRunnerOptions]脚本因异常而终止
131213 18:42:32.555:S[main-thread][com.android.monkeyrunner.monkeyrunner-options]回溯(最近一次通话最后一次):
文件“C:\Python27\tests\1.py”,第26行,在
设备,serialno=ViewClient.connectToDeviceOrExit()
文件“C:\ProgramFiles(x86)\Android\AndroidViewClient\AndroidViewClient maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py”,第1381行,康涅狄格州
ctToDeviceOrExit
ViewClient.setAlarm(超时+5)
文件“C:\ProgramFiles(x86)\Android\AndroidViewClient\AndroidViewClient maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py”,setAl中的第1341行
臂
信号报警(超时)
文件“C:\ProgramFiles(x86)\Android\Android sdk\tools\lib\jython-standalone-2
.5.3.jar\Lib\signal.py”,第222行,报警
NotImplementedError:此平台上未实现报警
我做错什么了吗?请帮忙


多谢各位

这就是
setAlarm
的样子

@staticmethod
def setAlarm(timeout):
    osName = platform.system()
    if osName.startswith('Windows'): # alarm is not implemented in Windows
        return
    signal.alarm(timeout)
因此,它尝试识别这是Windows,然后不调用未实现的
signal.alarm()
,但由于某种原因,它在您的情况下失败。 尝试打印
osName
的结果以查看出现了什么问题

更新
现在我明白了,您正在使用
monkeyrunner
作为解释器,但是AndroidViewClient>=4.0.0是100%纯python,因此您应该使用
python
2.x解释器运行脚本。

您使用的是哪种AndroidViewClient版本?Windows中没有报警,这可能是问题之一。我正在使用最新的报警,我昨天从github下载了它。
>>导入平台>>>osName=platform.system()>>打印osName
输出:Windows就是Windows是的,它似乎可以工作,使用python 2.7解释器是正确的解决方案。它是否适用于python 3.x版本?