【appium】appium自动化入门之API(中)

news2024/11/24 16:50:51

上一篇介绍了在appium上启动app和两个定位元素的小工具使用方法,这篇就从appium的一种小方法:远程控制,以及如何把appium上的输入法调整成中文,算是两个小技巧吧

 

目录
正文
2.4 Remote 远程控制
前言
2.4.1 设置 IP
2.4.2 访问地址
2.4.3 配置测试机
2.4.4 远程操作
2.5 输入中文
前言
2.5.1 定位搜索
2.5.2 运行脚本
2.5.3 屏蔽软键盘
2.5.4 输入中文字符
2.5.5 还原设置
2.5.6最终脚本
后话
 

正文

2.4 Remote 远程控制

前言

在启动 app 的时候有这样一行代码 driver= webdriver.Remote(‘http://192.168.1.1:4723/wd/hub’,

desired_caps),很多 小伙伴不知道这个 ip 和端口哪里来的,于是小编决定写一篇关于这个 appium 的 服务器 ip 文章!

一般来说 appium 中 127.0.0.1 这个地址的默认的不需要修改。在做自动 化过程中,如果遇到需要远程操作的话,这个功能就可以派上用场了。想想 看, 如 果公司给你单独配置一台跑自动化测试电脑,然后自己工作的电脑写脚本,在自动化机器上运行脚本,这样工作自动化两不误,是不是很爽呢?
 

2.4.1 设置 IP

  1. 打开 appium>General Setting 界面

在这里插入图片描述

 

    2.这里用个 appium 默认的服务端地址 127.0.0.1 端口 4723,==一般在自己机器上调试,无需修改 ==

2.4.2 访问地址

1.代码里面的那个地址到底指向的是哪里呢?
    启动 appium 服务后,在浏览器输入:http://127.0.0.1:4723/wd/hub。出现如下图所示,说明服      务启动成功,可以把 appium 看出是一个服务端。

在这里插入图片描述

 

2.4.3 配置测试机

  1. 一台工作电脑,一台跑自动化测试的电脑,如何用工作的电脑远程控制自动化测试的那台电脑呢?

  2. 测试电脑上的 appium 服务地址改成本机 IP 地址如:192.168.1.1(敲 黑板,记重点!这里要是本机的 ip 地址)

在这里插入图片描述

     3.启动测试电脑上的 appium。

在这里插入图片描述

 

2.4.4 远程操作

  1. 在自己工作电脑上打开浏览器输入:192.168.1.1:4723/wd/hub。这一 步很重要,一定要看到如下界面,确认远程链接成功。

在这里插入图片描述

 

    2.脚本里面的代码修改下地址

    3. 测试机上环境准备好后,在本机上运行脚本,于是测试机上可以自动运行了。

# coding=utf-8
from appium import webdriver
import time
desired _caps={
 'platformName':'Android,
 'deviceName':'30d4e606',
 'platformVersion':'5:0',
 'appPackage':'com.taobao.taobao',
 'appActivity':'com.taobao.tao.welcome.welcome',
 'unicodeKeyboard':True,
 'resetKeyboard':True
 }
driver=webdriver.Remote('http://192.168.1.1:4723/wd/hub',desired_caps)

2.5 输入中文

前言

在做 app 自动化过程中会踩很多坑,咱们都是用的中文的 app,所以首先要解决中文输入的问题!
本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题。

2.5.1 定位搜索

  1. 打开淘宝点搜索按钮,进入到搜索页面
  2. 然后定位到搜索框后用 sendkeys 方法输入“hao”,这里定位元素用第 四篇讲的 uiautomatorviewer 工具就可以了
  3. 脚本如下图
# coding=utf-8
from appium import webdriver
import time
desired _caps={
 'platformName':'Android,
 'deviceName':'30d4e606',
 'platformVersion':'5:0',
 'appPackage':'com.taobao.taobao',
 'appActivity':'com.taobao.tao.welcome.welcome',}
driver=webdriver.Remote('http://192.168.1.1:4723/wd/hub',desired_caps)
# 休眠五秒等待页面加载完成
time.sleep(5)
driver.find_element_by_id("come.taobao.taobao:id/home_searchedit").click()
time.sleep(2)
driver.find_element_by_id("come.taobao.taobao:id/")click()
driver.find_element_by_id("come.taobao.taobao:id/").send_keys(u"hao")

2.5.2 运行脚本

1.首先要确认手机上的输入法是用的什么输入法,如果==默认是中文的输入法,启动后会出现下面情况,无法输入成功 ==

在这里插入图片描述

 

2.于是可以先把手机上的输入法改成英文的状态,这样就可以输入英文字符串了。

2.5.3 屏蔽软键盘

  1. 通过前面的操作,大概可以知道,在 APP 里面输入字符串是调用的软键 盘输入的,有没办法像 selenium 做 web 自动化时候一样,直接 sendkeys 绕过键 盘输入呢?
  2. 于是可以想办法屏蔽软键盘,只需在 desired_caps{}设置里面加两个 参数(敲黑板,记重点!)在这里插入图片描述
  3. unicodeKeyboard 是使用 unicode 编码方式发送字符串
  4. resetKeyboard 是将键盘隐藏起来

 

2.5.4 输入中文字符

  1. 将上面代码改成输入中文 u“点赞”,然后运行脚本,在手机上查看结果。(中文前面要加个 u)
    # coding=utf-8
    from appium import webdriver
    import time
    desired _caps={
     'platformName':'Android,
     'deviceName':'30d4e606',
     'platformVersion':'5:0',
     'appPackage':'com.taobao.taobao',
     'appActivity':'com.taobao.tao.welcome.welcome',}
    driver=webdriver.Remote('http://192.168.1.1:4723/wd/hub',desired_caps)
    # 休眠五秒等待页面加载完成
    time.sleep(5)
    driver.find_element_by_id("come.taobao.taobao:id/home_searchedit").click()
    time.sleep(2)
    driver.find_element_by_id("come.taobao.taobao:id/")click()
    driver.find_element_by_id("come.taobao.taobao:id/").send_keys(u"点赞")
    
    

  2. 如果显示中文字符为乱码时, 前面加上“#–coding:gb18030–”
  3. 如下图所示:

在这里插入图片描述

 

2.5.5 还原设置

  1. 当运行上面的脚本后,发现手动去输入时候,无法调出软键盘了,如何 恢复呢?
  2. 打开手机设置,找到输入法设置选项,会发现默认的输入法被改成 appium 的输入法了。所以只需把这里的设置,恢复成原来输入法就 OK 拉。

在这里插入图片描述

 

2.5.6最终脚本

# coding=utf-8
from appium import webdriver
import time
desired _caps={
'platformName':'Android,
'deviceName':'30d4e606',
'platformVersion':'5:0',
'appPackage':'com.taobao.taobao',
'appActivity':'com.taobao.tao.welcome.welcome',}
driver=webdriver.Remote('http://192.168.1.1:4723/wd/hub',desired_caps)
# 休眠五秒等待页面加载完成
time.sleep(5)
driver.find_element_by_id("come.taobao.taobao:id/home_searchedit").click()
time.sleep(2)
driver.find_element_by_id("come.taobao.taobao:id/")click()
driver.find_element_by_id("come.taobao.taobao:id/").send_keys(u"hao")

后话

希望这两个小技巧对大叫有帮助,有疑问或者有什么需要了解的可以点击并输入暗号:CSDN

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenMMLab-AI实战营第二期-课程笔记-Class 3:RTMPose关键点检测

Class 3:RTMPose关键点检测 文章目录 Class 3:RTMPose关键点检测概述安装相关库为了方便使用者快速上手 MMPose,这次课程有着丰富的示例代码脚本,以及详细的技术文档,包括安装、数据集准备、使用教程、常见问题解答等。…

Pycharm+pytest+allure打造高逼格的测试报告

目录 前言: 1、安装allure 2、安装allure-pytest 3、一个简单的用例test_simpe.py 4、在pycharm底部打开terminal 5、用allure美化报告 6、查看报告 总结: 前言: 今天分享的内容:在Pycharmpytest基础上使用allure打造高逼格…

Spring注入

前言 向一个普通的类中注入数据有什么方法? set方法 构造方法 依赖注入描述了在容器之间建立bean与bean之间依赖关系的过程,如果bean运行需要的是数字或者字符串呢? 引用类型 基本数据类型与String 依赖注入方式 setter注入 简单类型…

HUAWEI悦盒ec6108v9c 如何刷成海纳思系统(家用低功耗服务器,使用Home Assistant服务)

环境: 1.HW悦盒ec6108v9c一套 2.16G U盘 3.格式化软件USB_format.exe 4.固件 mv100-mdmo1g-usb-flash.zip(底层是Ubuntu 20.04系统) 5.十字螺丝刀 6.翘片/薄铲子 7.有线网络环境 8.镊子/回形针 问题描述: 最近玩智能家居…

最近我面了15个人,发现这些测试人都有个通病

最近公司离职好几个测试,也是赶上程序员跳槽的多,老板叫我招2个测试进来。4天时间面了15个人,怎么说呢,基本上没有符合要求的, 也没别的意思,因为我们公司小,开的薪水也不高,所以来…

Oracle中xmltype类型toObject函数用法实例

Oracle中xmltype类型toObject函数用法总结。 用法总结 xmltype是oracle中的type object类型。在实际使用中,可以当做xml对象来使用: set serveroutput ondrop type person_typex; create type person_typex is object (name varchar2(32),age number …

每天一道大厂SQL题【Day25】脉脉真题实战(一)每日活跃用户

文章目录 每天一道大厂SQL题【Day25】脉脉真题实战(一)每日活跃用户每日语录第25题:1. 需求列表1. 初级题: 每日活跃用户 思路分析(1) 创建表(2) 思路 答案获取加技术群讨论附表文末SQL小技巧 后记 每天一道大厂SQL题【Day25】脉脉真题实战(一)每日活跃用户 大家好…

【React】路由,Hooks

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 路由Navigate导航组件 路由的嵌套useNavigate路由传递参数route配置抽取 路由 通过Link组件就可…

AntDB 事务机制

全局一致性 AntDB 的集群架构包括,一个 GTM(Global Transaction Manager)、多个Coordinator(CN)、多个 Datanode(DN)。其中 GTM 负责给其他的 DN 和CN 分发集群全局唯一的事务号和集群当前判断…

QT--配置Opencv

提示:本文为学习记录,若有疑问,请及时联系作者。 文章目录 前言一、下载已编译的opencv1..解压2..path路径 二、使用步骤1..pro文件2..h文件 总结 前言 只做第一个我,不做第二个谁。 一、下载已编译的opencv 适用于mingw编译器…

如何学习数据结构与算法? - 易智编译EaseEditing

学习和提升数据结构与算法的能力可以通过以下几个步骤: 学习基础知识: 了解数据结构和算法的基本概念和原理,包括常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、图算法等&#…

GreenPlum监控工具GPCC部署

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

Fiddler抓包工具之fiddler的命令行窗口用法

fiddler的命令行窗口的相关命令 在fiddler官网有QuickExec使用教程,地址是http://docs.telerik.com/fiddler/knowledgebase/quickexec QuickExec 命令行窗口位于fiddler左下角黑色输入框,如下图: 按ALT Q,将焦点快速设置到Quic…

initramfs 最全解释与制作

先提几个问题: 0、什么是 initrd 和 initramfs? 概述 现代Linux系统都使用到了一种功能比较特殊的微型系统,作为Linux内核初始化完成但未进入最终系统时的过渡系统,主要的目的是为了将最终系统载入到根文件系统上,辅…

这个618,网工最值得买的路由器/交换机设备

大家好,我是老杨。 有小友最近扎堆冒出来问我,企业要采购路由器/交换机,买啥牌子好,买啥型号好。 又或者是,家里要买家用的路由器/电脑,啥性价比最高? 我真的很想吐槽一句,你们再问…

敏捷软件测试常见的七个误区

敏捷软件开发是从1990年代开始逐渐引起广泛关注的一种新型软件开发方法,是能够应对快速变化的需求的一种软件开发能力,它作为一种新型的开发模式,被越来越多地应用到软件项目中。 敏捷软件测试指的是在敏捷软件开发过程中跟质量相关的一系列…

Appium+Python3环境搭建,其实超简单!

appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python。略懂Python,所以接下来的教程是appiumpython,自己搭建环境的时候,按照某些博客安装遇到各种奇葩问题&am…

【新版】系统架构设计师 - 嵌入式技术

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 嵌入式技术考点摘要嵌入式系统嵌入式系统开发与设计交叉开发环境软硬件协同设计嵌入式软件移植低功耗设计 嵌入式硬件嵌入式微处理器人工智能芯片微处理器体系结构 嵌入式操作系统(EOS…

大涨39.9%!连续三季度蝉联全球第三,联想服务器做对了什么?

市场调查公司IDC最新发布的2023年第一季度x86服务器全球市场追踪报告显示,联想集团当季实现了39.9%的大幅增长、市场份额连续三季度蝉联全球第三,而全球排名前五厂商中戴尔下降25.1%、HPE微涨0.6%、浪潮下降38.7%、超微(Super Micro&#xff…

考友经验分享——考研英语怎么答题

(注:我的英语一般,这是其他人的考研英语经验,仅供参考,要早日找到适合自己的方法!) 管卫东老师的《管卫东的考研英语阅读最后冲刺阅读突破——技巧与总结》,觉得收获不小&#xff0…