1、元素的基本操作说明

(1)点击操作

点击操作:click()方法。(同Selenium中使用方式一致)

(2)清空操作

清空操作:clear()方法。(同Selenium中使用方式一致)

(3)输入操作

输入操作:send_keys()方法。

在移动端的输入操作有两种情况,一种情况是输入非中文内容,另一种情况是输入中文内容。

1)输入英文

使用方法:

# value:需要发送到输⼊框内的⽂本
send_keys(vaule)

业务场景:

  1. 打开设置。
  2. 点击搜索按钮。
  3. 输入内容abc。

代码实现:

# 点击搜索按钮
driver.find_element_by_id("com.android.settings:id/search").click() # 定位到输入框并输入abc
driver.find_element_by_id("android:id/search_src_text").send_keys("abc") # 重点:
# 大家可以将输入的abc改成输入中文内容,
# 得到的结果:输入框无任何值输入,且程序不会抱错。

2)输入中文

server启动参数增加两个参数配置。

也就是Desired capabilities对象添加两个配置参数:

# 启用Unicode输入法,设置为true可以输入中文字符,默认为false
desired_caps['unicodeKeyboard'] = True # 在设定了`unicodeKeyboard`关键字运行Unicode测试结束后,将键盘重置为其原始状态
# 如果单独使用resetKeyboard参数,代码将会被忽略,
# 因为默认值`false`,重置也的值也是`false`
desired_caps['resetKeyboard'] = True

再次运行会发现运行成功。

# 点击搜索按钮
driver.find_element_by_id("com.android.settings:id/search").click() # 定位到输入框并输入’显示’
driver.find_element_by_id("android:id/search_src_text").send_keys("显示")

2、综合练习

"""
1.学习目标
掌握appium元素点击和输入方法
2.操作步骤
2.1 点击 元素.click()
2.2 输入
元素.send_keys("输入内容")
输入会分成两种情况:
1)输入非中文:
send_keys("WLAN")
2)输入中文:
需要在启动参数中添加2个参数
# 启用Unicode输入法,设置为true可以输入中文字符,默认为false
"unicodeKeyboard":True,
# 在设定了`unicodeKeyboard`关键字运行Unicode测试结束后,将键盘重置为其原始状态
"resetKeyboard":True
2.3 清空 元素.clear() 3.需求
在设置APP中进行搜索操作
"""
# 1.导入appium
import time
from appium import webdriver # 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings", # APP启动名
"unicodeKeyboard": True, # 启用Unicode输入法,设置为true可以输入中文字符,默认为false
"resetKeyboard": True # 在设定了`unicodeKeyboard`关键字运行Unicode测试结束后,将键盘重置为其原始状态
} # 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) # 4.定位元素
# 4.1 定位搜索按钮,通过accessibility_id方法,并点击打开
search = driver.find_element_by_accessibility_id("搜索设置")
search.click()
# 4.2 定位搜索输入框
box = driver.find_element_by_id("android:id/search_src_text")
# 4.3 输入内容
# box.send_keys("WLAN") # 输入英文
box.send_keys("abcdef123/*-+;") # 输入非中文 # 清空输入框
time.sleep(3)
box.clear() # 输入中文
box.send_keys("蓝牙") # 5.关闭APP
time.sleep(3)
driver.quit()

『与善仁』Appium基础 — 21、元素的基本操作的更多相关文章

  1. 『与善仁』Appium基础 — 20、Appium元素定位

    目录 1.by_id定位 2.by_name定位 3.by_class_name定位 4.by_xpath定位 5.by_accessibility_id定位 6.by_android_uiautom ...

  2. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  3. 『与善仁』Appium基础 — 26、常用手机操作的API说明

    目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...

  4. 『与善仁』Appium基础 — 7、ADB Shell命令的使用

    目录 1.查看进程 2.查看实时资源占用情况 3.查看进程 UID 4.其它ADB Shell命令说明 Android系统是基于 Linux 内核的,也就是说Android系统的底层是Linux系统. ...

  5. 『与善仁』Appium基础 — 9、补充:C/S架构和B/S架构说明

    目录 1.C/S架构和B/S架构概念 2.C/S结构与B/S架构的区别 3.C/S架构和B/S架构优点和缺点 (1)B/S模式的优点和缺点: (2)C/S模式的优点和缺点: 1.C/S架构和B/S架构 ...

  6. 『与善仁』Appium基础 — 10、Appium基本原理

    目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...

  7. 『与善仁』Appium基础 — 12、Appium的安装详解

    目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...

  8. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  9. 『与善仁』Appium基础 — 15、使用Appium的第一个Demo

    我们使用Python语言作为测试脚本的编写语言. 执行脚本前提: Android模拟器或者手机是开机状态. 使用确保电脑和Android设备进行了链接. 也就是使用ADB命令adb connect链接 ...

随机推荐

  1. c++学习笔记1(引用)

    引用 格式:类型名&引用名=某变量名: 概念 实例:编写交换整型变量的函数对比 不用引用 实机操作 使用引用 实机操作 实例2:用作函数的返回值 可对函数返回值赋值 常引用 使用格式,在引用前 ...

  2. HCNP Routing&Switching之BGP团体属性和团体属性过滤器

    前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...

  3. sui Mobile 试玩

    .... 突然就用上这东西还不熟悉就写了一个页面而已 <a class="open-popup button pull-right create-actions" id=&q ...

  4. Linux 软连接与硬连接 区别

    先说结论 软连接相当于快捷方式,访问软连接会被替换为其指向的绝对路径,如果其指向的文件被删除,则无法访问. 硬连接相当于指针,与它指向的文件都指向相同的inode,当其指向的文件被删除,inode由于 ...

  5. 多线程06.thread守护线程

    package chapter2; public class Demo02 { public static void main(String[] args) { Thread th1=new Thre ...

  6. Discontinuous Galerkin method for steady transport problem

    下面讨论如何使用 Discontinuous Galerkin 求解恒定对流问题. 1.简介 恒定状态对流方程 \[\begin{equation} a\cdot \nabla \mathbf{u} ...

  7. MicrosoftPowerBI—2019-nCov 新型冠状病毒肺炎多功能动态看板

    https://app.powerbi.cn/view?r=eyJrIjoiNmE0ZDU0MGItOTFjYy00MWYyLWFmZjMtMThkM2EwMzg5YjgyIiwidCI6ImQxNj ...

  8. 浏览器点击URL的响应过程

    原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...

  9. C语言中的除法的计算

    不用除号,计算除法运算.思路是使用减法运算!思路1:循环采用减法每次减去n,直到做完减法之后结果小于0为止 但是这样次数较大  如求100/3,需要次数为34次. 思路2:循环采用减法每次减去k,K的 ...

  10. Swift-技巧(十一)重写运算符

    摘要 基础数据的运算可以直接使用四则运算符.在 Swift 中也可以通过重写四则运算符的方式,让 struct 或者 class 创建的结构体或者对象也能像基础数据那样直接使用四则运算符. Swift ...