折腾:
【未解决】Mac中用uiautomator2自动操作安卓手机浏览器实现百度搜索
期间,现已代码操作打开浏览器,进入了百度首页了
接着去,输入内容,触发百度搜索,显示搜索结果页面。

Prop Value activity .BrowserActivity package com.android.browser className android.widget.EditText description text resourceId index-kw clickable true label x, y 44, 628 width 723 height 140 enabled true visible XPath //*[@resource-id="index-kw"] position (0.176, 0.291) 点击 代码 d(resourceId="index-kw")
和:

Prop Value activity .BrowserActivity package com.android.browser className android.widget.Button description text 百度一下 resourceId index-bn clickable true label x, y 764, 628 width 275 height 140 enabled true visible XPath //*[@resource-id="index-bn"] position (0.826, 0.299) 点击 代码 d(resourceId="index-bn")
去写代码
searchStr = "crifan" baiduSearchInputUiObj = d(resourceId="index-kw", className="android.widget.EditText") baiduSearchInputUiObj.set_text(searchStr)
效果:

然后先去试试 模拟输入回车键 触发百度搜索:
################################################################################
# Trigger baidu search
################################################################################
# Method 1: press Enter
EnterKey = "enter"
d.press(EnterKey)
print("Emulated press key %s" % EnterKey)结果:

是可以正常触发百度搜索的。
另外,注意到前面输入法中,右下角是 搜索 按钮,所以换去试试:
# Method 1: press key
# TriggerSearchKey = "enter"
TriggerSearchKey = "search"
d.press(TriggerSearchKey)
print("Emulated press key %s" % TriggerSearchKey)模拟输出 search,结果:
竟然没反应。说明此处无效。
再去试试其他几个官网
提到的
go search send next done previous
好像不对。应该是:
- home
- back
- search
- enter
没有其他选项了。不过也去试了:
# TriggerSearchKey = "enter" # work # TriggerSearchKey = "search" # not work # TriggerSearchKey = "go" # not work TriggerSearchKey = "done" # not work d.press(TriggerSearchKey)
其他没用
-》此处就只是enter有效,能触发搜索。
继续试试,换用:
找到百度一下按钮,点击触发百度搜索:

Prop Value activity .BrowserActivity package com.android.browser className android.widget.Button description text 百度一下 resourceId index-bn clickable true label x, y 770, 248 width 266 height 127 enabled true visible XPath //*[@resource-id="index-bn"] position (0.907, 0.145) 点击 代码 d(resourceId="index-bn")
用代码:
# Method 2: find 百度一下 button then click
baiduSearchButtonUiObj = d(resourceId="index-bn", className="android.widget.Button")
baiduSearchButtonUiObj.click()
print("Clicked baidu search button")结果:
同样可以 触发百度搜索。
【总结】
此处最后用代码:
################################################################################
# Input text
################################################################################
searchStr = "crifan"
baiduSearchKeywordUiObj = d(resourceId="index-kw", className="android.widget.EditText")
baiduSearchKeywordUiObj.set_text(searchStr)
print("Inputed baidu search text %s" % searchStr)
################################################################################
# Trigger baidu search
################################################################################
# # Method 1: press key
# TriggerSearchKey = "enter" # work
# # TriggerSearchKey = "search" # not work
# # TriggerSearchKey = "go" # not work
# # TriggerSearchKey = "done" # not work
# d.press(TriggerSearchKey)
# print("Emulated press key %s" % TriggerSearchKey)
# Method 2: find 百度一下 button then click
baiduSearchButtonUiObj = d(resourceId="index-bn", className="android.widget.Button")
baiduSearchButtonUiObj.click()
print("Clicked baidu search button")可以实现:
给百度首页中
输入要搜索的文字
并(模拟按下回车键,或,找到百度一下按钮并点击)触发搜索
此处的效果是:
