上一篇介绍了在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
-
打开 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 配置测试机
-
一台工作电脑,一台跑自动化测试的电脑,如何用工作的电脑远程控制自动化测试的那台电脑呢?
-
测试电脑上的 appium 服务地址改成本机 IP 地址如:192.168.1.1(敲 黑板,记重点!这里要是本机的 ip 地址)
3.启动测试电脑上的 appium。
2.4.4 远程操作
-
在自己工作电脑上打开浏览器输入: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 定位搜索
- 打开淘宝点搜索按钮,进入到搜索页面
- 然后定位到搜索框后用 sendkeys 方法输入“hao”,这里定位元素用第 四篇讲的 uiautomatorviewer 工具就可以了
- 脚本如下图
# 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 屏蔽软键盘
- 通过前面的操作,大概可以知道,在 APP 里面输入字符串是调用的软键 盘输入的,有没办法像 selenium 做 web 自动化时候一样,直接 sendkeys 绕过键 盘输入呢?
- 于是可以想办法屏蔽软键盘,只需在 desired_caps{}设置里面加两个 参数(敲黑板,记重点!)
- unicodeKeyboard 是使用 unicode 编码方式发送字符串
- resetKeyboard 是将键盘隐藏起来
2.5.4 输入中文字符
- 将上面代码改成输入中文 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"点赞")
- 如果显示中文字符为乱码时, 前面加上“#–coding:gb18030–”
- 如下图所示:
2.5.5 还原设置
- 当运行上面的脚本后,发现手动去输入时候,无法调出软键盘了,如何 恢复呢?
- 打开手机设置,找到输入法设置选项,会发现默认的输入法被改成 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