python uiautomator类型错误:';AutomatorDeviceObject';对象不可调用

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

以上是带有属性的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_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