Appium + python -always_allows弹窗
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import os
from time import sleep #apk 路径
PATH = lambda x : os.path.join(os.path.dirname(os.path.realpath(__file__)),x) #百度下载开发者头条,放在当前脚本目录
print(PATH("toutiao.apk")) desired_caps = {
"platformName":"Android",
"platformVersion":"9",
"deviceName":"4871660c",
"app":PATH("toutiao.apk"),
"appPackage":"io.manong.developerdaily",
"appActivity":"io.toutiao.android.ui.activity.LaunchActivity",
"noReset":True,
"autoAcceptAlerts":"true"
} driver = webdriver.Remote("http://localhost:4723/wd/hub",desired_caps) sleep(3)
#打印屏幕宽和高
print(driver.get_window_size())
#获取屏幕的宽
x = driver.get_window_size()['width']
#获取屏幕的高
y = driver.get_window_size()['height'] # sleep(2)
# def swipe_right(driver,n=None):
# return:实现从右到左滑动,滑动时X轴起点小于终点
# x1 = size["width"] * 0.75 # 起点x1坐标
# y1 = size["height"] * 0.5 # y1 坐标
# x2 = size["width"] * 0.25 # 终点x2坐标
# for i in range(n):
# sleep(1)
# # driver.swipe(x1, y1, x2, y1, t)
# driver.swipe(6/7*x, 1/2*y, 1/7*x, 1/2*y, 100) def always_allow(driver,number=1,n=3):
"""
:param driver: function 权限弹窗默认允许 -- 传driver
:param number: 判断弹窗次数,默认5次
WebDriverWait 里面0.5s判断一次是否有弹窗,1s超时
"""
for i in range(number):
loc = ("xpath","//*[@text='允许']")
# id_text = 'resourceId("android:id/button1").text("允许")'
try:
# WebDriverWait(driver,1,0.5).until(EC.presence_of_element_located(loc)).click()
driver.switch_to_alert()
sleep(1)
driver.switch_to.alert.accept()
#return:实现从右到左滑动,滑动时X轴起点小于终点
for i in range(n):
sleep(1)
# driver.swipe(x1, y1, x2, y1, t)
driver.swipe(6 / 7 * x, 1 / 2 * y, 1 / 7 * x, 1 / 2 * y, 100)
except:
print("Error") if __name__ == "__main__":
# 调用始终允许函数
always_allow(driver)
# size = driver.get_window_size()
# swipe_right(driver,n=3)
Appium + python -always_allows弹窗的更多相关文章
- appium+python自动化47-首次打开app权限弹窗问题
前言 用真机运行appium代码,首次打开app有的手机会出现权限弹窗问题,一般这种弹窗都是在引导页前面或者引导页后面出现.权限弹窗上面的按钮都是固定的, 只需要定位到"始终允许" ...
- Appium python API 总结
Appium python api 根据testerhome的文章,再补充一些文章里面没有提及的API [TOC] [1]find element driver 的方法 注意:这几个方法只能通过sel ...
- appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...
- android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)
android模拟器(genymotion)+appium+python 框架执行的基本过程: 1.Push.initDate(openid)方法 //业务数据初始化 1.1 v5db.p ...
- appium+python做移动端自动化测试
1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...
- appium python ios 自动化
mac下搭建appium python selenium来针对ios应用进行自动化测试,并不是官网上的例子,自己程序调试成功. 前言:因为appium的安装前要先确定nodejs的安装.python的 ...
- appium+Python 启动app(二)
我们上步操作基本完成,下面介绍编写Python脚本启动app 打开我们pycharm新建.py文件 第一步:输入Python脚本代码: #coding=utf-8 from appium import ...
- appium+Python 启动app(一)
当我们appium和Python环境都配置好了,如何启动我们第一个app呢?下面介绍appium+Python启动app的操作步骤,为了能够详细查看,我们这里使用夜游神模拟器进行示范. 测试项目:QQ ...
- Appium + Python环境搭建(移动端自动化)
安装JDK,配置JDK环境 百度搜索下载就行,这里分享一个下载链接:https://pan.baidu.com/s/1snuTOAx 密码:9z8r. 下载好后点击进行安装.安装好后进行环境变量 ...
随机推荐
- HDU_4826_dp
Labyrinth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- redis查看数据
目前Redis缓存数据库在许多行业平台大量应用,有效解决了高并发等特定场景的应用性能瓶颈,Redis数据的查看.维护,性能监控有没有好用的工具呢,目前TreeSoft数据库管理系统可以满足实现需求. ...
- 为什么阿里规约手册要求谨慎使用Arrays.asList方法
前言 在开发中,有时候会碰到把多个参数,或者说把数组转成List的需求,通常我们会使用 Arrays.asList()方法.但是该方法在使用的过程中,稍有不慎就会出现严重的异常.有如下代码: @Tes ...
- 最快的 Python Web 框架入门
速度比较 框架 实现基础 每秒请求数 平均时间 Sanic Python 3.5 + uvloop 30,601 3.23ms Wheezy gunicorn + meinheld 20,244 4. ...
- linq排序之 根据文本 A-001-002-003 这种类型进行分割排序 空值放于最后
调用 List<string> data = new List<string>() { "D-001-001-001","A-001-004-00 ...
- c/c++排坑(3) -- c/c++中的switch语句
switch语句的简单介绍 一个 switch 语句允许测试一个变量等于多个值时的情况.每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查. switch(expres ...
- 洛谷——P2342 叠积木
P2342 叠积木 题目大意: 给你一堆积木,排成一行,初始时每对积木都只有一个,支持两种操作 第一种是移动操作,格式为“移动X到Y的上面”.X和Y代表两块积木的编号,意思是将X所的那堆积 ...
- Codeforces Round #413(Div. 1 + Div. 2, combined)——ABCD
题目在这里 A.Carrot Cakes 乱七八糟算出两个时间比较一下就行了 又臭又长仅供参考 #include <bits/stdc++.h> #define rep(i, j, k) ...
- Java基础学习总结(71)——深入理解Java虚拟机内存
Java虚拟机中的内存分配图 : 各个区域的特性总结如下表: 补充说明: 当多线程情形下,可能多个线程要在堆上分配内存,那么可能出现内存分配的同步问题,解决方案有两个,一个就是同步内存分配动作:另一个 ...
- MAC OS下JDK版本切换指南
刚上手的用MAC开发的小伙伴们会发现,MAC自带JDK版本为1.6,通常会安装在 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/目录下,但是更多 ...