Appium(Python)测试混血App
2024-08-27 03:26:44
Hybrid App(混合模式移动应用)
是指介于web-app、native-app这两者之间的app
兼具Native App良好用户交互体验的优势
和
Web App跨平台开发的优势
HybridAppTest.py:
import unittest
from time import sleep from appium import webdriver class MyTestCase(unittest.TestCase): def setUp(self):
capabilities = {
"platformName": "Android",
"platformVersion": "7.1.1",
"deviceName": "3216e430",
"browserName": "Chrome",
# Chrome浏览器
"appPackage": "com.android.browser",
# Chrome的包名
"appActivity": ".BrowserActivity",
# Chrome的启动页
"unicodeKeyboard": True,
"resetKeyboard": True,
"noReset": True,
"noSign": True
}
self.driver = webdriver.Remote("http://localhost:4723/wd/hub", capabilities)
sleep(2) def test_hybridApp(self):
driver = self.driver
driver.get("http://www.cnblogs.com/yjlch1016/")
sleep(2)
driver.switch_to.context("NATIVE_APP")
# 切换到原生
sleep(1)
driver.find_element_by_id("com.android.chrome:id/menu_button").click()
# 点击右上角的菜单
sleep(2)
driver.find_element_by_accessibility_id("历史记录").click()
# 点击历史纪录
sleep(2)
driver.keyevent(4)
# 手机返回键
sleep(2)
driver.switch_to.context("CHROMIUM")
# 切换到H5
sleep(1)
driver.find_element_by_xpath(".//*[@id='homepage1_HomePageDays_ctl00_DayList_TitleUrl_0']").click()
# 点击第1篇博客
sleep(2)
assert driver.find_element_by_xpath(".//*[@id='cb_post_title_url']"), "Appium(Python)驱动手机淘宝App" def tearDown(self):
self.driver.close_app()
self.driver.quit() if __name__ == '__main__':
unittest.main()
如果是自己公司的App,
请记得麻烦开发工程师开启WebView的debug模式!
最新文章
- .net开源后可以查看的源代码
- Cacti -- Advance Ping
- Java多线程学习(二)
- mongodb(mongoose-redis-cache)
- Qt中的qreal
- jquery bind、delegate、live、on的区别及联系
- Entity Framework: Joining in memory data with DbSet
- Java基础-String 存储机制管理
- Linux Native Aio 异步AIO的研究
- MyBatis之二:简单增删改查
- ASCII 码对应表
- Linux防火墙配置—允许转发
- SQL Server 2008对日期时间类型的改进
- centos6环境下使用yum安装Ambari
- Python存储系统(Redis)
- #1479 : 三等分(树形DP)
- Codeforces 914D - Bash and a Tough Math Puzzle 线段树,区间GCD
- webpack+vue打包之后输出配置文件修改接口文件
- Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装.
- 【shell】各种括号()、(())、[]、[[]]、{}的使用
热门文章
- MaBatis(5)输入/输出映射
- mybatis映射文件参数处理 #{}取值与${}取值的区别
- 智能门锁超低功耗:SI522(13.56芯片)替代MFRC522\FM17522
- ARM MDK 编译产生:RO、RW和ZI DATA说明
- ssm框架基础搭建
- Maven--archetypeCatalog笔记
- Oracle模糊查询
- wpf中使用cefsharp加载本地html网页并实现cs和js的交互,并且cefsharp支持any cpu
- MySQL必知必会 读书笔记二:MySQL使用
- 解决微信小程序用 SpringMVC 处理http post时请求报415错误