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. 下载好后点击进行安装.安装好后进行环境变量 ...
随机推荐
- 在centOS环境搭建airtest时遇到 Xlib.error.DisplayNameError: Bad display name "" 和Xlib.error.XauthError异常
现在的问题 (airtestVenv) [root@67 airtest_selenium]# python3 proxy.pyTraceback (most recent call last): ...
- The Morning after Halloween uva1601
这道题思路还是比较清晰的,建图加bfs或双向bfs,其实后者比前者少了将近一半的时间.. 建图可以把某一点所拥有邻接点长度(数目)记录在数组0这个位置,因为这道题使用vector会超时. #inclu ...
- 【转载】Apache shutdown unexpectedly启动错误解决方法
http://blog.csdn.net/dong123dddd/article/details/21372179 xampp启动时显示的错误为: 9:52:41 [Apache] Attempti ...
- 【codeforces 510D】Fox And Jumping
[题目链接]:http://codeforces.com/contest/510/problem/D [题意] 你可以买n种卡片; 每种卡片的花费对应c[i]; 当你拥有了第i种卡片之后; 你可以在任 ...
- node.js 如何完美的从命令行接收参数所传递进来的值
https://segmentfault.com/q/1010000000367285
- mongodb之存储引擎
前言 存储引擎是Mongodb管理数据存储主要的组件,Mongodb支持多种存储引擎,每种存储引擎适合特定的场景 WiredTiger 特性 1. version >= 3.2版本默认存储引擎2 ...
- data guard 的redo 传输
data guard 通过把redo从primary数据库传输到standby数据库并应用在standby数据库来实现自己的功能. redo 传输是有2种模式 1. 同步 sync 2. 异步 asy ...
- firedac的数据序列和还原单元(Data.FireDACJSONReflect.pas)之拷贝FIREDAC数据集
使用流做中转 procedure CopyDataSet(const ASource, ADest: TFDAdaptedDataSet);var LStream: TStream;begin LSt ...
- Codeforces Round #305 (Div. 2) D题 (线段树+RMQ)
D. Mike and Feet time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- (二)模板引擎之Velocity脚本基本的语法全
velocity velocity三种reference 变量:对java对象的一种字符串化表示,返回值调用了java的toString()方法的结果. 方法:调用的是对象的某个方法. ...