phpcms 做好网站怎么保存,网站备案被注销了怎么办,外贸手机网站模板,wordpress本地备份目前app中存在越来越多的H5页面了#xff0c;对于一些做app自动化的测试来说#xff0c;要求也越来越高#xff0c;自动化不仅仅要支持原生页面#xff0c;也要可以H5中进行操作自动化#xff0c;
webview是什么
webview是属于android中的一个控件#xff0c;也相当于一…
目前app中存在越来越多的H5页面了对于一些做app自动化的测试来说要求也越来越高自动化不仅仅要支持原生页面也要可以H5中进行操作自动化
webview是什么
webview是属于android中的一个控件也相当于一个容器需要把H5的一些前端内容通过这个容器去调用显示和渲染网页
目前很多app中都实现app原生页面native和webview页面H5我们如何查看页面上哪些存在webview和native呢
查看webview和native
1、打开uiautomatorviewer定位工具进行查看页面上是否存在webview。下图可以看到android.webkit.webview。 2、断网情况下进行访问app如果可以正常显示页面说明为原生页面如果不能访问则为webviewH5页面
3、通过fiddler进行抓包查看内容存在html则为webviewH5页面
那么我们在appium中如何查看呢
4、通过contexts方法
def contexts(self):返回当前会话中的上下文。return self.execute(Command.CONTEXTS)[value]
执行脚本
# coding:utf-8
from appium import webdriver
import time
desired_caps {platformName: Android, # 测试版本deviceName: emulator-5554, # 设备名platformVersion: 5.1.1, # 系统版本appPackage: com.yipiao, #apk的包名appActivity: .activity.LaunchActivity, # apk的launcherActivitynoReset: True, # 不清空数据}
driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps)
time.sleep(6)
driver.find_element_by_xpath(//*[text下次再说]).click()
time.sleep(3)
driver.find_element_by_xpath(//*[text我的]).click()
# 点击产品意见
time.sleep(3)
driver.find_element_by_xpath(//*[text产品意见]).click()
# 获取全部上下文
cons driver.contexts
print(cons)# [NATIVE_APP, WEBVIEW_com.yipiao]
上面返回的结果中可以看到页面中存在NATIVE_APP和webview_com.yipiao。其中native_app表示app原生页面然后webview_com.XXXX表示webviewH5的页面
切换webview
前面已经了解到如何查看页面中是否存在webview当我们想要操作webview上的元素时必须要进入到webview中那么如何进入webview呢
可以通过 _switch_to.context() 方法进行切换
上面已经查询到页面上的内容然后我们通过_switch_to.context()方法进行跳转
# 跳转webview
driver._switch_to.context(WEBVIEW_com.yipiao)
print(driver.context)
源码
# coding:utf-8
from appium import webdriver
import time
desired_caps {platformName: Android, # 测试版本deviceName: emulator-5554, # 设备名platformVersion: 5.1.1, # 系统版本appPackage: com.yipiao, #apk的包名appActivity: .activity.LaunchActivity, # apk的launcherActivitynoReset: True, # 不清空数据}
driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps)
time.sleep(6)
driver.find_element_by_xpath(//*[text下次再说]).click()
# 点击我的
time.sleep(3)
driver.find_element_by_xpath(//*[text我的]).click()
# 点击产品意见
time.sleep(3)
driver.find_element_by_xpath(//*[text产品意见]).click()
# 获取全部上下文
cons driver.contexts
print(cons)
# 跳转到webview中
driver._switch_to.context(WEBVIEW_com.yipiao)
print(driver.context)# [NATIVE_APP, WEBVIEW_com.yipiao]# WEBVIEW_com.yipiao
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你