最新消息:20210917 已从crifan.com换到crifan.org

【已解决】用uiautomator2操作安卓浏览器打开百度首页

安卓 crifan 741浏览 0评论
折腾:
【未解决】Mac中用uiautomator2自动操作安卓手机浏览器实现百度搜索
期间,已经可以用uiautomator2启动小米内置安卓浏览器了
现在去打开百度首页
此处打开百度首页,最简单的是:
浏览器输入框中,直接输入百度首页地址,点击回车,即可
另外稍微复杂点的方式是:
新建窗口,再打开百度首页。
此处去试试简单的:
输入百度网址去打开
所以先去研究输入框元素:
属性是:
Selected Element
  
Prop    Value
activity    .BrowserActivity
package    com.android.browser
className    android.widget.TextView
description    搜索框
text    
resourceId    com.android.browser:id/b4h
clickable    true
label    
x, y    160, 107
width    637
height    65
enabled    true
visible    
XPath    //*[@resource-id="com.android.browser:id/b4h"]
position     (0.532, 0.057) 点击
代码 d(resourceId="com.android.browser:id/b4h")
有多种方式定位到元素。
先去用最常用的:id
参考自己教程
xpath · 安卓自动化测试利器:uiautomator2 (crifan.com)
用代码:
# find input box inside address bar
# inputElem = d.xpath("//android.widget.TextView[@id='b4h']")
# inputElem=<uiautomator2.xpath.XPathSelector object at 0x10fa3abb0>
inputElem = d(resourceId="com.android.browser:id/b4h")
# print("inputElem=%s" % inputElem)
# inputElem=<uiautomator2.session.UiObject object at 0x1097abbe0>
if inputElem.exists:
    print("Found input box %s" % inputElem)
可以找到元素:
注:用xpath,竟然找不到元素。。。
后记:想起来了,是要用resourceId
去试试:
inputXpathSelector = d.xpath("//android.widget.TextView[@resourceId='b4h']")
问题依旧。
再去参考:
xpath · 安卓自动化测试利器:uiautomator2 (crifan.com)
用:
inputXpathSelector = d.xpath("//android.widget.TextView[@resource-id='b4h']")
结果:问题依旧。
最后用:
inputXpathSelector = d.xpath("//android.widget.TextView[@resource-id='com.android.browser:id/b4h']")
找到元素了:
另外试了:
inputXpathSelector = d.xpath("//*[@resource-id='com.android.browser:id/b4h']")
也是可以找到元素的。
期间遇到了:
【已解决】用uiautomator2查找不到元素如何等待app启动完毕
然后继续:
看看如何打开百度首页
看起来,还是要:
新建窗口,输入百度网址,打开百度首页,更合适些。
所以去:
【规避解决】用uiautomator2操作安卓浏览器新建窗口并打开百度主页
又回来了。
那重新试试:
安卓浏览器地址栏中输入百度首页网址
期间遇到set_text无效的问题:
【规避解决】uiautomator2对于安卓浏览器的输入框set_text输入文字无效
继续,进入了输入框页面
Prop    Value
activity    .BrowserActivity
package    com.android.browser
className    android.widget.EditText
description    
text    北京成全球亿万富翁最多城市
resourceId    com.android.browser:id/bq3
clickable    true
label    
x, y    160, 83
width    569
height    112
enabled    true
visible    
XPath    //*[@resource-id="com.android.browser:id/bq3"]
position     (0.487, 0.057) 点击
代码 d(resourceId="com.android.browser:id/bq3")
去写代码
BaiduHomeUrl = "https://www.baidu.com/"

searchUiObj = d(resourceId="com.android.browser:id/bq3", className="android.widget.EditText")
searchUiObj.set_text(BaiduHomeUrl)
是可以输入内容的:
然后就是触发搜索了
此处用前面试过的:
d.press("enter")
即可打开百度首页
此处弹框中的 获取定位
此处为了简化操作:
确保已勾选:不再询问
手动点击 允许
-》则以后不会再提示
【总结】
此处代码:
################################################################################
# Open baidu homepage
################################################################################

# trigger into input page


# Method 1
inputUiObj = d(resourceId="com.android.browser:id/b4h", className="android.widget.TextView")
inputUiObj.click()


# # Method 2
# inputXpathSelector = d.xpath("//android.widget.TextView[@resource-id='com.android.browser:id/b4h']")
# inputXpathSelector.click()


# input baidu homr url
BaiduHomeUrl = "https://www.baidu.com/"
searchUiObj = d(resourceId="com.android.browser:id/bq3", className="android.widget.EditText")
searchUiObj.set_text(BaiduHomeUrl)


# trigger jump to baidu home
d.press("enter")
即可:
在浏览器首页中,点击顶部搜索框,进入搜索地址栏输入框页面
输入了百度首页地址后
输入回车键,触发跳转
进入了百度首页
效果:

转载请注明:在路上 » 【已解决】用uiautomator2操作安卓浏览器打开百度首页

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.187 seconds, using 23.34MB memory