前言

在做app自动化过程中会踩很多坑,咱们都是用的中文的app,所以首先要解决中文输入的问题!

本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题。

一、定位搜索

1.打开淘宝点搜索按钮,进入到搜索页面

2.然后定位到搜索框后用sendkeys方法输入“hao”,这里定位元素用第四篇讲的uiautomatorviewer工具就可以了

3.脚本如下图(公众号版权所有:软件测试部落)

 

二、运行脚本

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

2.于是可以先把手机上的输入法改成英文的状态,这样就可以输入英文字符串了。那么问题来了,如果想输入中文的字符串呢?如何解决。。。

三、屏蔽软键盘

1.通过前面的操作,大概可以知道,在APP里面输入字符串是调用的软键盘输入的,有没办法像selenium做web自动化时候一样,直接sendkeys绕过键盘输入呢?

2.于是可以想办法屏蔽软键盘,只需在desired_caps{}设置里面加两个参数(敲黑板,记重点!)

3.unicodeKeyboard是使用unicode编码方式发送字符串

4.resetKeyboard是将键盘隐藏起来(公众号版权所有:软件测试部落)

四、输入中文字符

1.将上面代码改成输入中文u“测试部落”,然后运行脚本,在手机上查看结果。(中文前面要加个u)

2.运行后手机上显示如下

 

3.如果显示中文字符为乱码时:

前面加上“#--coding:gb18030--” 如下图所示:

五、还原设置

1.当运行上面的脚本后,发现手动去输入时候,无法调出软键盘了,如何恢复呢?(公众号版权所有:软件测试部落)

2.打开手机设置,找到输入法设置选项,会发现默认的输入法被改成appium的输入法了。所以只需把这里的设置,恢复成原来输入法就OK拉。

1472636268159561.png713x676 31 KB

六、最终脚本如下

# 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://127.0.0.1:4723/wd/hub', desired_caps)

# 休眠五秒等待页面加载完成

time.sleep(5)

driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()

time.sleep(2)

driver.find_element_by_id("com.taobao.taobao:id/searchEdit").click()

driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys(u"yoyoketang")

Appium+python自动化7-输入中文【转载】的更多相关文章

  1. Appium + Python自动化3 - 输入中文

    在做app自动化过程中会踩很多坑,咱们都是用中文的app,所以首先要解决中文输入的问题!本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题. 一.定位搜索 1.打开淘宝点击搜索按钮,进入搜索页 ...

  2. Appium+python自动化7-输入中文

    前言 在做app自动化过程中会踩很多坑,咱们都是用的中文的app,所以首先要解决中文输入的问题! 本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题. 一.定位搜索 1.打开淘宝点搜索按钮,进 ...

  3. Appium+python自动化22-Appium Desktop【转载】

    Appium Desktop 原滋原味的官方文档 Appium Desktop是一款用于Mac.Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂亮灵活的UI中的强大功能. ...

  4. Appium+python自动化6-Remote远程控制【转载】

    前言 在第三篇启动app的时候有这样一行代码driver = webdriver.Remote('http://192.168.1.1:4723/wd/hub', desired_caps),很多小伙 ...

  5. Appium+python自动化10-AVD 模拟器【转载】

    前言 有些小伙伴没android手机,这时候可以在电脑上开个模拟器玩玩 一.模拟器配置 1.双击启动AVD Manager,进入配置界面

  6. Appium+python自动化29-toast消息【转载】

    本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到. 一. Supported P ...

  7. Appium+python自动化28-name定位【转载】

    本篇转自博客:上海-悠悠 前言 appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了 一. name定位报错 1.最新版appium V1.7用name定位 ...

  8. Appium+python自动化5-Appium Inspector【转载】

    前言    appium Inspector从入门到放弃!反正你都打开了,那就看下为什么要放弃吧! Appium Inspector是appium自带的一个元素定位工具,上一篇介绍了如何使用uiaut ...

  9. Appium+python自动化9-SDK Manager【转载】

    前言 SDK Manager到有哪些东西是必须安装的呢? 一.SDK Manager 1.双击打开SDK Manager界面

随机推荐

  1. 基于CSS多列实现瀑布流

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. .net 下word 中的图片与文字分离

    最近在做一个项目要求word 中的图片与文字分离 ,找了好久终于找到一个完美的方法 c#实现word中的图文分离   part 1: class define Code highlighting pr ...

  3. SSH集成cxf 发布restful webservice

    首先讲一下什么是restful webservice ,这个问题网上一搜有很多博文去长篇大论的介绍它,但是最后你看完了也会觉得云里雾里的,所以我在这里简单的讲一下我理解的rest webservice ...

  4. 利用binlog server及Xtrabackup备份集来恢复误删表(drop)

      Preface       Today I'm gonna test how to rescue a dropped table from binlog server based on a ful ...

  5. mysql错误:Column ‘id’ in field list is ambiguous的解决方法

    [Err] 1052 - Column 'modify_time' in where clause is ambiguous 出错的语句: SELECT AVG(T.se)%60FROM( SELEC ...

  6. .net 匿名方法

    匿名方法 核心就是lambda语法,下面是使用举例: var conn= MySqlHelper.GetConn(); var list=conn.Query<User>("SE ...

  7. jmeter 运行脚本报错 java.net.BindException: Address already in use

    在win下跑jmeter时,在聚合报告中出现错误.打开日志文件(前提是将日志写入了指定文件) 发现报错的原因为:java.net.BindException: Address already in u ...

  8. NGUI-UIProgressBar,UIScrollBar,UISlider

    UIProgressBar是UIScrollBar和UISlider的基类 1.先来看下UIProgressBar(进度条)的使用 层次: progressBar的Inspector视图: 而fore ...

  9. java 日期处理相关

    /** *获取指定日期 前后指定天数的 日期 * */ public static String getNewDate(String sdate, int days) throws Exception ...

  10. Java TCP通信概念及实例

    TCP/UDP 协议 通俗解释: TCP协议和UDP协议的区别类似于电话系统和邮政系统. <1>TCP:类似于电话系统,建立双向的通信通道,确定连接,话音顺序接听. <2>UD ...