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

不好意思,工作原因,鸽了一天,今天多更一篇吧
另外欢迎大家进来催更点击并输入暗号:CSDN

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

环境搭建篇【appium】appium自动化入门之环境搭建(上)
书接上文【appium】appium自动化入门之API(上)
下文指路【appium】appium自动化入门之API(下)——两万字API长文,建议收藏

正文

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"点赞")

  1. 如果显示中文字符为乱码时, 前面加上“#–coding:gb18030–”
  2. 如下图所示:
    在这里插入图片描述

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

在这里插入图片描述
下篇预告:API指令详解

猜你喜欢

转载自blog.csdn.net/Chaqian/article/details/109084219