appium自动化测试
一 Appium环境搭建1.1 Appium客户端安装运行appium-desktop-Setup-1.2.7.exe,默认安装即可启动客户端,按图片步骤 1 -> 2 -> 3 -> 4 设置3. 启动成功展示如下图1.2 ,Appium命令行安装方式安装Node.js ->Win:官网下载可执行包安装(Linux: yum install; Macos: brew in
·
一 Appium环境搭建
1.1 Appium客户端安装
- 运行appium-desktop-Setup-1.2.7.exe,默认安装即可
- 启动客户端,按图片步骤 1 -> 2 -> 3 -> 4 设置
3. 启动成功展示如下图
1.2 ,Appium命令行安装方式
- 安装Node.js ->Win:官网下载可执行包安装(Linux: yum install; Macos: brew install)
- 安装完成后 命令行运行npm或node -v 来查看是否安装成功
敲黑板: npm国内一般被墙,所以选择淘宝镜像安装,官网:http://npm.taobao.org
- 安装cnpm: npm install -g cnpm --registry=https://registry.npm.taobao.org
- 安装appium: cnpm install -g appium
-
启动appium服务命令: appium &,如下图即正确安装
敲黑板: Windows安装会提示os的模块错误,这个需要mac系统支持,不影响windows操作使用
1.3,Appium-python库安装
-
命令行安装(需要联网)
pip install Appium-Python-Client
默认版本有时会报错 建议使用 ==1.3.0版本
2,Appium入门使用
2.1 启动appium
2.2 界面 介绍
2.3 手机启动参数
desired_caps:负责启动服务端时的参数设置,
appium server 与手机端建立会话关系时,根据这些参数服务端可以做出相应的处理
desired_caps常用参数:
platformName 平台的名称:iOS, Android, or FirefoxOS
platformVersion 设备系统版本号
deviceName 设备号 IOS:instruments -s devices,Android: adb devices
app 安装文件路径:/abs/path/to/my.apk or http://myapp.com/app
appActivity 启动的Activity
appPackage 启动的包
unicodeKeyboard unicode设置(允许中文输入)
resetKeyboard 键盘设置(允许中文输入)
生成对应的键对信息
# server 启动参数
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
设置连接手机参数界面
将设置好的这调皮数据进行命名
点击对应的数据进行启动
连接后界面介绍
2.4 代码实现 案例
#导入对对应的包
from appium import webdriver
# appium填写的数据内容
caps = {}
caps["platformName"] = "Android"
caps["deviceName"] = "e036cefb9"
caps["appPackage"] = "com.taobao"
caps["appActivity"] = "com.taobao.tao.TBMainActivity"
# 只有声明驱动对象我们才可以让手机完成脚本的操作,声明的方法如下:
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
#手机隐形显示
driver.implicitly_wait(30)
# 通过appium点击图片获取的xpath地址
exttext=driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.wirdget.FrameLayout/android.wridget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[3]/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout')
exttext.click()
iputtext=driver.find_element_by_id("com.taobao.taobao:id/searchEdit")
iputtext.send_keys("手机")
sou=driver.find_element_by_id("com.taobao.taobao:id/searchbtn")
sou.click()
shouji=driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.support.v4.view.ViewPager/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.support.v7.widget.RecyclerView/android.widget.FrameLayout[1]/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.View[19]")
shouji.click()
quedshij=driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout[2]/android.view.View[1]")
quedshij.click()
更多推荐
已为社区贡献1条内容
所有评论(0)