python uiautomator类型错误:';AutomatorDeviceObject';对象不可调用
以上是带有属性的uiautomator对象查看器屏幕截图。我使用的是通过python uiautomator类型错误:';AutomatorDeviceObject';对象不可调用,python,android-uiautomator,Python,Android Uiautomator,以上是带有属性的uiautomator对象查看器屏幕截图。我使用的是通过pip安装uiautomator安装的python包uiautomator。我试图通过UI automator对象访问三点设置按钮。我已尝试使用中列出的文档 以下是代码和错误: import uiautomator as uia d = uia.device() #below all are my attempts >>> d(resourceId="com.android.camera2:id/three
pip安装uiautomator
安装的python包uiautomator。我试图通过UI automator对象访问三点设置按钮。我已尝试使用中列出的文档
以下是代码和错误:
import uiautomator as uia
d = uia.device() #below all are my attempts
>>> d(resourceId="com.android.camera2:id/three_dots").clickable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle").clickable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="id/mode_options_toggle")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle").clickable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle").clickable()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle", className="com.android.camera2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle", className="com.android.camera2").clcik()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle", className="com.android.camera2").click()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/mode_options_toggle", className="com.android.camera2").click()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(package="com.android.camera2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/progress_overlay")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/progress_overlay")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(resourceId="com.android.camera2:id/progress_overlay")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className="android.view.View")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className="android.view.View").child(className="android.widget.LinearLayout", resourceId="com.android.camera2:id/mode_options_toggle")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className="android.view.View").child(className="android.widget.LinearLayout", resourceId="com.android.camera2:id/mode_options_toggle").click()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(text="").info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d.info
{u'contentDescription': u'', u'checked': False, u'clickable': False, u'scrollable': False, u'text': u'', u'packageName': u'com.android.camera2', u'selected': False, u'enabled': True, u'bounds': {u'top': 0, u'left': 0, u'right': 1440, u'bottom': 2560}, u'className': u'android.widget.FrameLayout', u'focusable': False, u'focused': False, u'checkable': False, u'resourceName': None, u'longClickable': False, u'visibleBounds': {u'top': 0, u'left': 0, u'right': 1440, u'bottom': 2392}, u'childCount': 2}
>>> d(packageName=u'com.android.camera2).info
File "<stdin>", line 1
d(packageName=u'com.android.camera2).info
^
SyntaxError: EOL while scanning string literal
>>> d(packageName=u'com.android.camera2').info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className=u'com.android.camera2').info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className=u'com.android.camera2').info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className=u'').info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className=u'android.widget.FrameLayout').info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>> d(className="android.widget.FrameLayout").info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'AutomatorDeviceObject' object is not callable
>>>
将uiautomator作为uia导入
d=uia.device()#下面是我的所有尝试
>>>d(resourceId=“com.android.camera2:id/three_dots”)。可点击
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”)。可单击
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“id/mode\u options\u toggle”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”)。可单击
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”).clickable()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”,className=“com.android.camera2”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”,className=“com.android.camera2”).clcik()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”,className=“com.android.camera2”)。单击()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/mode\u options\u toggle”,className=“com.android.camera2”)。单击()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(package=“com.android.camera2”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/progress\u overlay”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/progress\u overlay”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(resourceId=“com.android.camera2:id/progress\u overlay”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=“android.view.view”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=“android.view.view”).child(className=“android.widget.LinearLayout”,resourceId=“com.android.camera2:id/mode\u options\u toggle”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=“android.view.view”).child(className=“android.widget.LinearLayout”,resourceId=“com.android.camera2:id/mode\u options\u toggle”)。单击()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(text=”“).info
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d.info
{u'contentDescription':u'',u'checked':False,u'clickable':False,u'scrollable':False,u'text':u'',u'packageName':u'com.android.camera2',u'selected':False,u'enabled':True,u'bounds':{u'top':0,u'left':0,u'right':1440,u'bottom':2560},u'className':u'android.widget.FrameLayout',u'focusable':False,u'focused':False,u'checkable':False,u'resourceName':None,u'longClickable':False,u'visibleBounds':{u'top':0,u'left':0,u'right':1440,u'bottom':2392},u'childCount':2}
>>>d(packageName=u'com.android.camera2).info
文件“”,第1行
d(packageName=u'com.android.camera2).info
^
SyntaxError:扫描字符串文字时下线
>>>d(packageName=u'com.android.camera2').info
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=u'com.android.camera2').info
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=u'com.android.camera2').info
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(类名称=u'')。信息
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=u'android.widget.FrameLayout').info
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>d(className=“android.widget.FrameLayout”).info
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“AutomatorDeviceObject”对象不可调用
>>>
在所有尝试之后,我仍然无法访问任何UI对象。请让我知道我在这里遗漏了什么?不是您问题的解决方案,而是另一种选择:使用“您可以运行”
culebra -uG -o camera-options.py
一旦你有了窗口,你可以点击选项点
立即看到结果
同时,,
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2013-2017 Diego Torres Milano
Created on 2017-11-24 by Culebra v13.5.2
__ __ __ __
/ \ / \ / \ / \
____________________/ __\/ __\/ __\/ __\_____________________________
___________________/ /__/ /__/ /__/ /________________________________
| / \ / \ / \ / \ \___
|/ \_/ \_/ \_/ \ o \
\_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
'''
import re
import sys
import os
try:
sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
pass
from com.dtmilano.android.viewclient import ViewClient
TAG = 'CULEBRA'
_s = 5
_v = '--verbose' in sys.argv
kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)
kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True}
vc = ViewClient(device, serialno, **kwargs2)
#vc.dump(window='-1') # FIXME: seems not needed
vc.dump(window=-1)
vc.findViewWithContentDescriptionOrRaise(u'''Options''').touch()
import uiautomator as uia
d = uia.device()
import uiautomator as uia
d = uia.device