appium===登陆应用的案例
import time
import os
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from swipe import swipeLeft #调用向左滑动的方法
import unittest PATH=lambda p:os.path.abspath(os.path.join(os.path.dirname(__file__),p)) class tChatAndroidTests(unittest.TestCase):
@classmethod
def setUpClass(self):
desired_caps={}
desired_caps['platformName']='Android'
desired_caps['platformVersion']='5.1'
desired_caps['deviceName']='ZTEC880U'
desired_caps['app']=PATH('F:\Tchat_kaifa_V3.0.12_456_TS49169.apk')
self.driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)#初始化
desired_caps['unicodeKeyboard']=True,#使用unicodeKeyboard的编码方式来发送字符串
desired_caps['resetKeyboard']=True#将键盘给隐藏起来 def test_login1(self):
time.sleep(2)
swipeLeft(self.driver)
swipeLeft(self.driver)
swipeLeft(self.driver)
time.sleep(2)
self.driver.get_screenshot_as_file('C:\\Users\\yangbo\\Desktop\\Tchat\\screenshot\\login1.png') #截图
self.driver.find_element_by_id("com.sinosun.tchats:id/welcome_btnstart").click() def test_login2(self):
time.sleep(2)
self.driver.find_element_by_id("com.sinosun.tchats:id/loginview_inputphone_textfield").click()
'''
account
'''
self.driver.find_element_by_id("com.sinosun.tchats:id/loginview_inputphone_textfield").send_keys("")
time.sleep(2)
'''
password
'''
self.driver.find_element_by_id("com.sinosun.tchats:id/loginview_inputpassword_textfield").send_keys("a123456")
time.sleep(2)
'''
login
'''
self.driver.find_element_by_id("com.sinosun.tchats:id/loginview_loginuser_button").click()
time.sleep(5)
self.driver.get_screenshot_as_file('C:\\Users\\yangbo\\Desktop\\Tchat\\screenshot\\login2.png') #截图
#self.driver.find_element_by_id("com.sinosun.tchats:id/myText").click()
'''
code
'''
# self.driver.find_element_by_id("com.sinosun.tchats:id/securityCode").send_keys("000000")
# time.sleep(2)
#self.driver.find_element_by_id("com.sinosun.tchats:id/next_btn").click()
time.sleep(10) @classmethod
def tearDownClass(self):
self.driver.quit() if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(tChatAndroidTests)
unittest.TextTestRunner(verbosity=2).run(suite)
#swipe的方法 def getSize(driver):
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return (x, y) #屏幕向上滑动
def swipeUp(driver,t=1000):
l = getSize(driver)
x1 = int(l[0] * 0.5) #x坐标
y1 = int(l[1] * 0.75) #起始y坐标
y2 = int(l[1] * 0.25) #终点y坐标
driver.swipe(x1, y1, x1, y2,t) #屏幕向下滑动
def swipeDown(driver,t=1000):
l = getSize(driver)
x1 = int(l[0] * 0.5) #x坐标
y1 = int(l[1] * 0.25) #起始y坐标
y2 = int(l[1] * 0.75) #终点y坐标
driver.swipe(x1, y1, x1, y2,t)
#屏幕向左滑动
def swipeLeft(driver,t=1000):
l=getSize(driver)
x1=int(l[0]*0.75)
y1=int(l[1]*0.5)
x2=int(l[0]*0.05)
driver.swipe(x1,y1,x2,y1,t)
#屏幕向右滑动
def swipeRight(driver,t=1000):
l=getSize(driver)
x1=int(l[0]*0.05)
y1=int(l[1]*0.5)
x2=int(l[0]*0.75)
driver.swipe(x1,y1,x2,y1,t) '''
使用方法:
先导入方法,如果在同一个目录下,最好
例如使用左滑的方法:
from swipe import swipeLeft
直接调用:swipeLeft(driver)
即可
'''
appium===登陆应用的案例的更多相关文章
- Web开发模式【Mode I 和Mode II的介绍、应用案例】
开发模式的介绍 在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II) 首先我们来理清一些概念吧: DAO(Data Access Object):主要对数据的 ...
- 网页与APP中那些优美的登陆表单
我从Dribbble收集了20个漂亮的登陆表单案例.希望你看后能从中受益,并对你以后的登陆表单设计有帮助.设计一个登陆表单是非常容易,但大多设计都很糟糕.毫无亮点.无论如何,这篇Dribbble案例集 ...
- Appium+python自动化(三十六)- 士兵突击许三多 - 多个appium服务启动,多个设备启动,多进程并发启动设备-并发测试 - 上(超详解)
简介 前面课程只是启动了单个appium服务,只能控制单台设备.如果需要针对多台设备测试那么该如何处理?而且发现群里的小伙伴们也在时不时地在讨论这个问题,想知道怎么实现的,于是宏哥就决定写一片这样的文 ...
- unittest测试
标签(空格分隔): unittest unittest介绍: python里面也有单元测试框架-unittest,相当于是一个python版的junit. 一.unittest简介 1.先导入unit ...
- HttpClient4.5简单使用
一.HttpClient简介 HttpClient是一个客户端的HTTP通信实现库,它不是一个浏览器.关于HTTP协议,可以搜索相关的资料.它设计的目的是发送与接收HTTP报文.它不会执行嵌入在页面中 ...
- struts2 的自定义 拦截器
Struts2的 拦截器: 对于拦截器,Struts2官方给出的 定义是: 拦截器是动态拦截Action调用的对象.它提供了一种机制,使开发者可以定义一段代码,在Action执行之前或者之后被调用执行 ...
- Web开发模式
原文链接 开发模式的介绍(完善版) 在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II). 首先我们来理清一些概念吧: DAO(Data Access Obj ...
- 前端开发—jQuery
jquery简介 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互, ...
- 6、SSH远程管理服务实战
1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务. 2.对传输 ...
随机推荐
- java基础简介
一.软件开发 软件:是由数据和指令组成的(例:计算器) 如何实现软件开发呢? 就是使用开发工具和计算机语言做出东西来 二.常用dos命令 d: 回车 盘符切换 dir(directory):列出 ...
- hdu 1596 find the safest road (最短路径)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- A表数据插入到B表(表结构不一致)
D_A 有E\F\H 3字段 D_B 有 A\B\C\D\E\ID 字段 将 D_B 个别字段插入到D_A 表 INSERT INTO D_A(E,F,H) select B,A,ID from ...
- [luogu5176] 公约数
题目描述 求 \[ \sum_{i=1}^n\sum_{j=1}^m\sum_{k=1}^p\gcd(i\cdot j,i\cdot k,j\cdot k)\times \gcd(i,j,k)\tim ...
- [BZOJ5120] [2017国家集训队测试]无限之环
Description 曾经有一款流行的游戏,叫做InfinityLoop,先来简单的介绍一下这个游戏: 游戏在一个n×m的网格状棋盘上进行,其中有些小方格中会有水管,水管可能在方格某些方向的边界的中 ...
- BZOJ5312:冒险——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5312 Kaiser终于成为冒险协会的一员,这次冒险协会派他去冒险,他来到一处古墓,却被大门上的守护 ...
- BZOJ1269 [AHOI2006]文本编辑器editor 【82行splay】
1269: [AHOI2006]文本编辑器editor Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4633 Solved: 1782 [Sub ...
- 洛谷 P2860 [USACO06JAN]冗余路径Redundant Paths 解题报告
P2860 [USACO06JAN]冗余路径Redundant Paths 题目描述 为了从F(1≤F≤5000)个草场中的一个走到另一个,贝茜和她的同伴们有时不得不路过一些她们讨厌的可怕的树.奶牛们 ...
- sed 用法 转https://www.cnblogs.com/Dev0ps/p/8441255.html
假设文档内容如下: [root@localhost ~]# cat /tmp/input.txt null test 要求:在1111之前添加AAA,方法如下: sed -i 's/指定的字符/要插入 ...
- extjs gridpanel 操作行 得到选中行
extjs gridpanel 操作行 得到选中行的列 在Extjs 3.2.0上适合 var model = grid.getSelectionModel(); model.selectAll(); ...