appium解锁android真机系统的屏幕


在使用appium进行app自动化操作的过程中,经常遇到的第一个难题就是如何解锁系统屏幕,也就是亮屏解锁。

实际上解决办法如下:在desired_capabilities中增加两个参数unlockType和unlockKey,类似的示例代码如下:

desired_caps={}
    desired_caps['platformName']='Android'
    desired_caps['platformVersion']='8.0.0'
    desired_caps['deviceName']='WG5T16A18019'
    desired_caps['appPackage']='com.xxxx'
    desired_caps['appActivity']='com.xxxx.ui.SplashActivity'
    desired_caps['autoGrantPermissions']=True
    desired_caps['unlockType']="password"
    desired_caps['unlockKey']="111111"

    
其中的unlockType可以设置为:pin,password,pattern,fingerprint当中的一个,顾名思义,分别对应pin,密码,手势解锁以及指纹解锁四种方式。

而unlockKey则为具体值,例如password即为实际的解锁口令,而pattern模式下则为手势解锁的滑动过程,如下图所示,则应设置为5416或者是6145(取决于滑动顺序)

__author__ = 'Jeff.xie'
from appium import webdriver
# coding:utf-8
from time import sleepfrom appium.webdriver.common.multi_action import MultiAction
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from appium.webdriver.common.appiumby import AppiumBy
desired_caps = {}desired_caps['platformName'] = 'Android'
# desired_caps['platformVersion'] = '11'
# desired_caps['deviceName'] = 'RFCNA0DREDX'
desired_caps['platformVersion'] = '11'
desired_caps['deviceName'] = '9b2157cfaedb'
desired_caps['appPackage'] = 'xxxxxxxxx'
desired_caps['appActivity'] = 'xxxxxxxxx'
desired_caps['unlockType'] = 'password'
desired_caps['unlockKey'] = '1234'
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
# driver.set_location(12, 123, 10)  #设置经度,纬度,海拔
print(driver.location)# Java
# driver.setLocation(new Location(49, 123, 10)); // Must be a driver that implements LocationContext
# 参考文档
# https://appium.readthedocs.io/en/stable/en/commands/session/geolocation/set-geolocation/#example-usagesleep(10)# driver.find_element(By.XPATH,"//android.widget.TextView[@text='登入']").click()
# driver.find_element_by_android_uiautomator('new UiSelector().text("登入")').click() # 不可用
driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR,'new UiSelector().text("登入")').click()  # 可用
sleep(1)
# driver.find_element(By.XPATH,"//android.widget.TextView[@text='用戶名稱']").click()
sleep(1)
driver.find_element(By.XPATH,'//android.widget.EditText[@content-desc="username-input"]').send_keys('contester0042')
sleep(1)
driver.find_element(By.XPATH,"//android.widget.TextView[@text='密碼']").click()
sleep(1)
driver.find_element(By.XPATH,'//android.widget.EditText[@content-desc="password-input"]').send_keys('Aa123321')
# driver.find_element(By.XPATH,'//android.widget.EditText[@content-desc="password-input"]').send_keys(Keys.ENTER)
driver.hide_keyboard()
sleep(1)
driver.find_element(By.XPATH,"//android.widget.TextView[@text='登入']").click()
sleep(10)

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

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

相关文章

偶现bug如何分析和处理?

测试中比较郁闷的一件事就是遇到偶现bug。测个10次~20次才难得出来一次,甚至有时几天才会出现一次,真的去复现的时候又不记得自己执行了哪些步骤。所以遇到这样的问题都是比较头疼的。 举个例子: 打开一个论坛,有一个在线人数的信…

C语言知识

逗号表达式&#xff1a;从左到右依次计算&#xff0c;最后的结果是最右边一个表达式的结果。 #include <stdio.h>int main() {//逗号表达式int arr[] {1,2,(3,4),5};printf("%d\n",sizeof(arr));return 0; } 数组的类型&#xff1a;去掉数组名的其他部分就是…

从零开始写 Docker(四)---使用 pivotRoot 切换 rootfs 实现文件系统隔离

本文为从零开始写 Docker 系列第四篇&#xff0c;在mydocker run 基础上使用 pivotRoot 系统调用切换 rootfs 实现容器和宿主机之间的文件系统隔离。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&…

【力扣精选算法100道】——存在重复元素 1 or 2 (哈希)

目录 &#x1f6a9;存在重复元素1 &#x1f388;了解题意 &#x1f388;算法原理 &#x1f388;实现代码 &#x1f6a9;存在重复元素2 &#x1f388;了解题意 &#x1f388;算法原理 &#x1f388;代码实现 217. 存在重复元素 - 力扣&#xff08;LeetCode&#xff09; …

【机器学习】包裹式特征选择之递归特征添加法

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

基于springboot+vue的多媒体素材库的开发与应用系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Hack The Box-Perfection

总体思路 端口扫描->SSTI RCE->db文件泄露->hashcat破解密码 信息收集&端口利用 nmap -sV -sC -A 10.10.11.253目标只开放了22和80端口&#xff0c;先进行目录扫描和子域名探测 dirsearch -u 10.10.11.253 ffuf -c -u http://pefection.htb/ -H "Host: F…

Golang 程序启动原理详解

一.编译 go源代码首先要通过 go build 编译为可执行文件,然后去机器上直接执行的&#xff0c;在 linux 平台上为 ELF 格式的可执行文件&#xff0c;linux 能直接执行这个文件,而编译阶段会经过编译器、汇编器、链接器三个过程最终生成可执行文件 编译器&#xff1a;*.go 源码通…

网络基础(二)

目录 再谈"协议" 序列化 JSON 网络版计算器 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 telnet指令 stat函数 struct stat类型 stringstream类型 wget指令 HTTP的方法 HTTP的状态码 传输层 再谈端口号 端口号范围划分 认识知名端口号(W…

[SpringCloud] OpenFeign核心架构原理 (二)

文章目录 1.Feign核心运行原理分析1.1 动态代理生成原理1.2 一次Feign的Http调用执行过程 1.Feign核心运行原理分析 动态代理生成原理。一次Feign的Http调用执行过程。 1.1 动态代理生成原理 通过Feign.builder().target(xx)获取到动态代理的。 调用ReflectiveFeign的newInst…

Python数据分析案例38——我国个人工作总收入影响因素分析

案例背景 偶然之间找到了CSFP(中国家庭追踪调查)的数据集&#xff0c;一个很全的家庭调查数据集。所以就想对大家现在最关心的工资和其影响因素做一点分析。 得到的结论还挺有价值的&#xff0c;有符合逻辑的&#xff0c;也有反直觉的。 数据来源 CFPS由北京大学中国社会科学…

【XR806开发板试用】Console流程解析以及添加自定义指令

写在前面的话 基于串口的指令调试总是作为基础功能出现在各个项目中。而这一小小的功能却已经包括了中断注册&#xff0c;回调函数&#xff0c;互斥量等嵌入式系统基本的软件逻辑。本文将从以下两个方面介绍XR806 SDK中Console系统。 Console初始化流程添加自定义指令 Conso…