十一、WebView

一、查看webview元素的方式

1.通过 chrome 直接连接手机查看
1.1使用 genymotion 打开需要查看的 webview 界面
在这里插入图片描述
1.2. 在 chrome 中 输入 chrome://inspect 地址,并点击 inspect
在这里插入图片描述
1.3. 选中 “select an element…” 选项
在这里插入图片描述
1.4. 选中要查看的元素,即可自动跳转到对应的代码
在这里插入图片描述
2 通过 chrome 浏览器查看手机的网页地址
2.1 使用 genymotion 打开需要查看的 webview 界面,并全选地址
在这里插入图片描述
2.2. 将地址粘贴到 chrome 中进行打开,并使用 右键元素-检查 的形式进行查看
在这里插入图片描述
2.3 关于查看元素的注意点

2.3.1 inspect 工具 和 android 版本有关
工具是否有 “select an element…” 按钮取决于 android 版本,有些版本可能并没有 “select an element…” 的按钮,
比如 android 5.1,如果真的需要对 android 5.1 需要查看,只能从代码中一个一个找。
2.3.2 能否使用chrome 直接查看手机地址与网页地址有关
比如,网易新闻的 新闻页面 是使用的 WebView,但开发人员是将整个网页下载到手机后,再通过下载在手机的地址
进行加载。而复制的地址是手机的绝对路径,在电脑上是无法打开的。
在这里插入图片描述

二、实现webview自动化

前置代码,和之前相同(打开的包名和启动名是浏览器软件)
获取,driver的所有的上下文。
得到,一个原生的app的字符串,还有其他各种webview的字符串。

contexts = driver.contexts
for i in contexts:
print(i)

如NATIVE_APPWEBVIEW_cn.goapk.marketWEBVIEW_com.android.browser
通过,driver的switchto来切换上下文

# 告诉appium需要查找的是 com.android.browser程序的webview的内容
driver.switch_to.context("WEBVIEW_com.android.browser")

切换后可以使用selenium的方法进行元素定位
包括,点击已经输入文字等api都是相同的。

案例:
在浏览器应用中打开百度首页,并在搜索框中输入10086,再点击搜索。然后打开知乎首页。
核心代码

from appium import webdriver
desired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.browser'
desired_caps['appActivity'] = '.BrowserActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 打开百度
driver.find_element_by_id("com.android.browser:id/url").send_keys("www.baidu.com")
driver.press_keycode(66)
print(driver.contexts)
# 切换到网页环境
driver.switch_to.context("WEBVIEW_com.android.browser")
# 定位百度输入框并输入10086
driver.find_element_by_id("index-kw").send_keys("10086")
# 定位百度一下按钮并点击
driver.find_element_by_id("index-bn").click()
# 切换到原生环境
driver.switch_to.context("NATIVE_APP")
# 打开百度
driver.find_element_by_id("com.android.browser:id/url").send_keys("www.zhihu.com")
driver.press_keycode(66)

三、关于没有对应 chromedriver 的问题

3.1 根据错误信息下载对应的 chromedriver
错误为:
在这里插入图片描述
打开提示的网址:
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md
此处有chrome版本对应的chromedriver版本
需要下载chromedriver。下载哪个版本?
看自己手机的浏览器的版本,在设置-应用-全部-android system webview

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值