appium + python 搭建

appium + python

1、安装jdk
地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
配置:
系统变量新建JAVA_HOME,输入jdk安装路径,如:C:\Program Files\Java\jdk1.8.0_201。
系统变量新建CLASS_PATH,输入.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。
系统变量path中添加jdk的bin目录和jre\bin路径。

2、安装sdk
地址:http://tools.android-studio.org/index.php/sdk
配置:
系统变量新建ANDROID_HOME,输入android SDK安装路径,如:E:\SDK\android-sdk-windows。
系统变量path中添加tools和platform-tools路径。
cmd运行adb和android -h,无报错则说明安装成功
在SDK安装目录下启动SDK Manager,Tools --> Options...设置proxy server为:mirrors.neusoft.edu.cn,proxy port为:80,others勾选force。。。然后更新

3、安装Python
地址:https://www.python.org/downloads/
配置:
系统变量path中添加Python的安装路径
安装好之后cmd窗口输入Python,显示版本号和交互提示,则安装成功

4、安装appium
地址:https://bitbucket.org/appium/appium.app/downloads/
配置:
系统变量path中添加Python的安装路径
安装好之后cmd窗口输入appium -v,显示版本号则安装成功

5、安装node.js
地址:https://nodejs.org/en/download/
安装好之后cmd窗口输入node -v,显示版本号则安装成功

6、安装appium-doctor
cmd窗口输入npm install -g appium-doctor
安装好之后,输入appium -doctor检查appium的安装和配置是否ok

7、安装pycharm
地址:http://www.jetbrains.com/pycharm/
激活:网上搜一下注册码就行

8、安装appium-python-client
安装并打开pycharm,新建工程后,点击File--Settings--Project Interpreter--点击右边+号--搜索appium-python-client--点击左下角Install Package安装就行

9、查看appPackage和appActivity
先启动你的APP,然后在cmd窗口输入:adb shell dumpsys window | findstr mCurrentFocus,你会看到如:mCurrentFocus=Window{ddc340b u0 com.android.chrome/com.google.android.apps.chrome.Main},
则你要查的appPackage是com.android.chrome,appActivity是com.google.android.apps.chrome.Main

第一个demo:
1、在SDK安装目录下启动AVD Manager
2、创建并启动模拟器或者连接手机
3、在cmd窗口输入adb devices检查设备是否连接和设备信息
4、启动appium,选择start inspector session,在desired capabilities填写模拟器相关信息后点击start session
5、这时候设备上已经打开了你的启动项
6、这时候我们可以在appium中点击查看页面元素了
7、然后编写用例执行操作,附上代码

# -*- coding:utf-8 -*-
from appium import webdriver
import time

chromeTest = {
"platformName": "Android",
"deviceName": "emulator-5554",
"platformVersion": "9",
"appPackage": "com.android.chrome",
"appActivity": "com.google.android.apps.chrome.Main"
}

driver = webdriver.Remote("http://localhost:4723/wd/hub",chromeTest)

time.sleep(3)

driver.find_element_by_id("terms_accept").click()
driver.find_element_by_id("negative_button").click()
driver.find_element_by_id("search_box_text").click()
ipt = driver.find_element_by_id("url_bar")
ipt.send_keys("appium")

driver.tap([(988,1698),(988,1698)],100) #坐标点和按压时间(毫秒)

time.sleep(30)

driver.quit()

 

转载于:https://www.cnblogs.com/sucman/p/10536018.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 12.04 /sbin/ldconfig.real: /usr/local/lib/*.so.8 不是符号连接 解决办法

最近在ubuntu12.04下使用sudo apt-get install安装软件的时候最后总会报这种错误。建立硬连接即可解决: sudo ln -sf /usr/local/lib/libprotobuf.so.8.0.0 /usr/local/lib/libprotobuf.so.8 截图上传没成功,麻烦。 在弄一次。

Linux GCC常用命令

1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成可执行文件 5.2链接 5.3强制链接时使用静态链接库 1简介 GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展&#…

JDK 9 @不建议使用的注释增强功能

在帖子中, Deprecated可能会是什么样子? ,我当时使用JEP 277 (“增强的弃用”)的描述来指导创建增强的自定义Deprecated注释。 但是,自从发布该文章以来,JEP 277进行了重大更改。该文章总结了J…

数据结构和算法基础之冒泡排序

/// <summary>/// 冒泡排序/// </summary>/// <param name"arry"></param>public static void BubbleSort(int[] arry){for (int i 0; i < arry.Length; i)//外层循环控制排序趟数{for(int j0;j<arry.Length-i-1;j)//内层循环控制每一…

Java Web应用程序的SecureLogin

不&#xff0c;标题中没有缺少空格。 这与安全登录无关 &#xff0c;而与安全顾问Egor Homakov开发的SecureLogin协议有关&#xff0c;该协议因在没有权限的情况下致力于掌握 Rails项目而闻名 。 SecureLogin协议非常有趣&#xff0c;因为它不依赖任何中央方&#xff08;例如&…

最通俗的CRC校验原理剖析

以下内容摘自笔者即将出版的最新著作《深入理解计算机网络》一书。本书将于12月底出版上市&#xff0c;敬请留意&#xff01;&#xff01; 本书原始目录参见此文&#xff1a;http://winda.blog.51cto.com/55153/1063878 5.3.2 循环冗余校验检错方案 上节介绍的奇偶校验码&#…

SpringMVC 上传文件and过滤器

SpringMVC提供了一个MultipartResolver接口用来实现文件上传&#xff0c;并使用Commons FileUpload技术实现了一个该接口的实现类CommonsMultipartResolver。如果要在SpringMVC中实现文件上传功能&#xff0c;就可以在springmvc.xml中配置MultipartResolver接口的实现类。 以下…

guava 集合转换_Guava的Collections2:过滤和转换Java集合

guava 集合转换Groovy的便利之一是能够通过Groovy的闭包支持轻松地对集合执行过滤和转换操作。 Guava将对集合的过滤和转换引入标准Java&#xff0c;这是本文的主题。 Guava的Collections2类具有两个公共方法&#xff0c;这两个方法都是静态的。 方法filter&#xff08;Collec…

CRC校验算法的解析,暨对网上的CRC详解的补充

一、CRC的形象理解 本文面向对CRC校验有一定基础的读者&#xff0c;如果你不懂&#xff0c;请戳这里。维基百科还有图解版的。 在CRC的具体实现中&#xff0c;如果要计算CRC的数据很长&#xff0c;一般都会用到寄存器&#xff0c;用来保存当前的计算到的CRC&#xff0c;循环计算…

7.5 GRASP原则五:高内聚 High Cohesion

GRASP原则五&#xff1a;高内聚 High Cohesion   How to keep objects focused, understandable and manageable, and as a side effect support Low Coupling? 如何使对象功能专注、可理解、可管理&#xff0c;同时又支持 低耦合&#xff1f;5.1 GRASP rule 5&#xff1…

资源泄漏:救援的命令模式

多年来&#xff0c; 使用Plumbr进行性能监视时&#xff0c;我遇到了数百个资源泄漏引起的性能问题。 在这篇文章中&#xff0c;我想描述一种最简单的方法来清理资源并避免该问题。 首先&#xff0c;我以电影播放器​​应用程序为例来描述问题。 这种应用程序的主要功能自然是在…

Word文字的三种隐藏方法

在Word的使用过程中&#xff0c;有时候可能需要这么一种情况&#xff1a;一些文字或者段落我们暂时不需要&#xff0c;但又不知后期是否用到&#xff0c;其碍眼却又不能删除。这个时候&#xff0c;最好的方法就是暂时隐藏文字或者段落。今天寻老师教大家三种隐藏Word文本的方法…

Video 对象方法 canPlayType()

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <p>我的浏览器可以播放 MP4 视频吗?<span> <button οnclick"supportType(e…

Linux下区分物理CPU、逻辑CPU和CPU核数

㈠ 概念 ① 物理CPU 实际Server中插槽上的CPU个数 物理cpu数量&#xff0c;可以数不重复的 physical id 有几个 ② 逻辑CPU Linux用户对 /proc/cpu…

java原子更新类_Java内部具有原子更新的动态热交换环境

java原子更新类有人可能会争辩说上述标题可以简称为OSGi &#xff0c;我想在一开始就放弃这种思考过程。 对于OSGi而言&#xff0c;这没有什么冒犯的&#xff0c;它是一个很棒的规范&#xff0c;在实现层或可用性层上都搞砸了&#xff0c;这就是我对OSGi的信念。 当然&#xf…

5个构建Spring Boot API的实用技巧

建筑物身份管理&#xff0c;包括身份验证和授权&#xff1f; 尝试Stormpath&#xff01; 我们的REST API和强大的Java SDK支持可以消除您的安全风险&#xff0c;并且可以在几分钟内实现。 注册 &#xff0c;再也不会建立auth了&#xff01; 每个API开发人员都在寻找一种更安全…

C++项目目录组织结构

项目目录结构的问题基本上是个仁者见仁&#xff0c;智者见智的问题&#xff0c;只要自己用着顺手&#xff0c;使用什么样的目录组织结构是没有什么大碍的。当然如果项目很大&#xff0c;参与的人员很多&#xff0c;那么合理的组织一下目录结构还是会有很大的益处的。不同类型的…

火绒杀毒软件更安静

https://www.huorong.cn/转载于:https://www.cnblogs.com/Tom-yi/p/10554564.html

完全编译安装boost

文章目录 1. 安装依赖2. 编译安装 boost3. 环境变量配置 boost是C世界中相当优秀的第三方库&#xff0c;被选入STL的也有不少&#xff0c;其中用到的C奇技淫巧更是数不胜数。 安装依赖 boost 在类 Unix 系统上的安装&#xff0c;可以参考官方文档的 Get Started&#xff0c;除此…

c#Md5 32位加密结果少了两个0的原因

我们的&#xff1a; e1adc3949ba59abbe56e57f20f883e 第三方的&#xff1a;e10adc3949ba59abbe56e057f20f883e 原因: 这个是很常见的错误&#xff0c;你字节转换成字符串的时候要保证是2位宽度啊&#xff0c;某个字节为0转换成字符串的时候必须是00的&#xff0c;否则就会丢失…