【问题标题】:python script does not work but individual shell command doespython脚本不起作用,但单个shell命令可以
【发布时间】:2015-08-20 03:04:18
【问题描述】:

我正在尝试运行这段 python 代码来学习如何使用 uiautomator 进行 android 测试。

from uiautomator import device as d
d(index = 2, className='android.widget.TextView').click() #menu button
print 'inside menu button'
d(text='People', className='android.widget.TextView').click() #contacts
print 'inside contacts'
#loop to add a contact  
d(resourceId= 'com.android.contacts:id/menu_add_contact', className='android.widget.TextView').click()

当我将它作为 python 脚本运行时,这段代码不起作用python add_contact.py

但是,当我像这样按顺序运行它时。

python #enters the shell 
from uiautomator import device as d
d(index = 2, className='android.widget.TextView').click() #menu button
d(text='People', className='android.widget.TextView').click() #contacts
d(resourceId= 'com.android.contacts:id/menu_add_contact', className='android.widget.TextView').click()

基本上我所做的是进入python shell并一一输入命令,而不是作为脚本运行它。结果是没有在脚本中按下通讯录图标,而是手动输入它会起作用。

【问题讨论】:

  • “不起作用”是什么意思?
  • @Cyphase 命令没有运行
  • 但是当它没有运行时打印什么

标签: android python shell adb android-uiautomator


【解决方案1】:

显然我已经通过这段代码解决了这个问题。

from uiautomator import device as d
d(index = 2, className='android.widget.TextView').click() #menu button
print 'inside menu button'
d(index='15', className='android.widget.TextView').click() #contacts
print 'inside contacts'
#loop to add a contact  
d(resourceId= 'com.android.contacts:id/menu_add_contact', className='android.widget.TextView').click()

可能是延迟问题

通过改变

d(text='People', className='android.widget.TextView').click() #contacts

到这里

d(index='15', className='android.widget.TextView').click() #contacts

【讨论】:

    相关资源