appium解锁android真机系统的屏幕

2024-03-05 13:12

本文主要是介绍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)

这篇关于appium解锁android真机系统的屏幕的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/776619

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现