1. 驱动

import os, time, unittest
from appium import webdriver
PATH = lambda p:os.path.abspath(os.path.join(os.path.dirname(__file__),p))

desired_caps
= {}

  1. desired_caps['platformName'] = 'Android'  # 设备系统
  2. desired_caps['platformVersion'] =
    '4.2.2'  # 设备系统版本
  3. desired_caps['deviceName'] = 'H30-U10'  #  设备名称
  4. desired_caps["unicodeKeyboard"] =
    True  #设置输入法
  5. desired_caps["resetKeyBoard"] =
    True    #设置输入法
  6. # desired_caps['app'] =
    PATH(r"D:\zhihu.apk")
  7. desired_caps['appPackage']
    = 'com.zhihu.android'
  8. desired_caps['appActivity']
    = 'com.zhihu.android.app.ui.activity.MainActivity'
  9. def
    new_driver():
  10. #设置driver
  11. driver =
    webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)

return driver

注意:其中第9行,如果使用appium安装应用的话则需要,手动安装则注销掉

10,11行有几种方法得到,建议使用解析apk直接得到,方法如下:

[cmd]

aapt dump badging
D:\zhihu.apk

 

 

此处有个坑,开发者选项里面需要勾选一个使用自动化的一个选项,记不清到底是什么了,换了个手机竟然连接不上了…╮(╯▽╰)╭好气呀

1. 编写用例.

使用D:\Android\android-sdk\tools下面的一个工具进行定位

 

 

点击它

 

一般用test定位

2. 简单代码

driver
= self.driver

try:
    time.sleep(10)
    driver.find_element_by_name("搜索").send_keys("xxx")
    driver.find_element_by_name("xxxxx").click()
    str = "xxxx"
    driver.find_element_by_name(str).click()
    time.sleep(5)
     #实例化
    driver.get_screenshot_as_file("new.png")
    print("页面打开成功")

涉及到一些隐私内容,已经替换成xxx

3. 其他

Appium是由selenium继承来的,所以使用appium的话需要有一些selenium的经验,毕竟selenium的环境比appium好搭太太太多了,至于再深入的东西,可以使用unittes框架,或者pytest.

appium使用教程(三)-------------用例编写的更多相关文章

  1. Powershell极速教程-如何在三分钟内编写项目编译脚本

    分析及思路 来看一下项目目录结构 炒鸡正常的三板斧src+docs+tests.咦,怎么会多出一个build的文件夹呢,这就是我们今天要研究的目录.今天我会带着大家在五分钟之内编写一个极简的编译脚本. ...

  2. appium简明教程

    appium简明教程 什么是appium? 下面这段介绍来自于appium的官网. Appium is an open-source tool you can use to automate mobi ...

  3. Swift中文教程(三)--流程控制

    原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花 ...

  4. electron教程(三): 使用ffi-napi引入C++的dll

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(二): http服务器, ws服务器, 进程管理 electron教程(三): 使 ...

  5. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  6. Nginx教程(三) Nginx日志管理

    Nginx教程(三) Nginx日志管理 1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某 ...

  7. MIP开发教程(三) 使用MIP-CLI工具调试组件

    一 . 在 mip-extensions 仓库中创建新的组件 二 . 预览调试组件 三 . 在 MIP 页中引用自己编写的 MIP 组件 四 . 组件提交到 GitHub 仓库时需要进行校验 站长开发 ...

  8. webpack4 系列教程(三): 多页面解决方案--提取公共代码

    这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...

  9. Quartz教程三:Job与JobDetail介绍

    Quartz教程三:Job与JobDetail介绍 原文链接 | 译文链接 | 翻译:nkcoder | 校对: 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感 ...

随机推荐

  1. hihocoder1415 重复旋律3

    思路: 扫一遍height 判一下即可 //By SiriusRen #include <cstdio> #include <cstring> #include <alg ...

  2. TYVJ1415 差分约束

    思路: i–>i+1连一条边权为0的边 i–>i-1连一条边权为-1的边 start-1 ->end 连一条边权为w的边 求0->n的最长路即可 //By SiriusRen ...

  3. 解决win8.1下sql配置iis的问题

    在配置iis8.5时,ISAPI和CGI限制中没有ASP.NET v4.0.30319, 所以要注册.net 4.0 注册方法为在“运行”中输入cmd,然后在命令行中输入: C:\WINDOWS\Mi ...

  4. EL与JSTL学习(二)——JSTL技术

    1.JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能. jstl出现的目的同el一样也是要代替jsp ...

  5. 1044 - Access denied for user 'root'@'%' to database 'xahy-blog' 解决方案二

    检查 user 表中'root'@'%' 的grant的权限 select HOST,USER,Grant_priv,Super_priv from mysql.`user`; 可以看到现在这两个权限 ...

  6. Node_进阶_4

    Node进阶第四天 一.传统数据库技术回顾 数据库就是存储数据的,那么存储数据用txt就行了啊,为什么要有数据库? 理由之一:数据库有行.列的概念,数据有关系,数据不是散的. 老牌数据库,比如Mysq ...

  7. 注解形式读取properties文件中的属性

    1.spring.xml中加入(多个properties 用逗号隔开)  <context:property-placeholder location="classpath:jdbc. ...

  8. ansible搭建mysql主主模式

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)等优点,实现了批量系统配置.批量程序部署.批量运行命 ...

  9. Solr全文检索引擎配置及使用方法

    介绍 Solr是一款开源的全文检索引擎,基于lucene.拥有完善的可配置功能界面.具有丰富的查询语言,可扩展,可优化. 下载安装 进入solr官网下载包(这里我使用的版本是8.0) http://w ...

  10. Java基础学习总结(8)——super关键字

    一.super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象.怎么去引 ...