python 脚本不起作用,但个别 shell 命令起作用

python script does not work but individual shell command does

我正在尝试 运行 这段 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 并一一输入命令,而不是 运行 将其作为脚本输入。结果是联系人簿图标未在脚本中按下,但手动输入它会起作用。

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

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