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. asp.net中挺高性能的24种方法

    那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...

  2. web前端学习路径推荐

    如果你是从其他行业转行到web前端开发领域,如果你没有计算机方面基础,建议大家先从最基础的网页制作开始学习,web前端的范围非常广泛,现在已经达到了大前端的要求,不过薪资待遇也是越来越好,可以说前端开 ...

  3. jenkins内置变量的使用

    参考链接:  https://www.cnblogs.com/puresoul/p/4828913.html 一.查看Jenkins有哪些环境变量 1.新建任意一个job 2.增加构建步骤:Execu ...

  4. 团队内部密码共享方案:KeePassXC+微盘(企业微信)

    目录 需求描述 适用场景 安装使用 KeePassXC初始化 浏览器插件安装设置 1.火狐 2.Edge 3.Chrome 软件-插件的链接 登陆网站并保存密码 (企业微信)微盘共享内部数据库 其他 ...

  5. 一文理解Java-class字节码文件

    前言 java语言在其刚诞生之际喊出的口号--"Write Once,Run Anywhere",正是基于字节码(byte code)而存在的,java能够做到平台无关性,得力于这 ...

  6. Ubuntu文件系统结构

    /bin: bin是Binary的缩写.存放系统中最常用的可执行文件(二进制). /boot: 这里存放的是linux内核和系统启动文件,包括Grub.lilo启动器程序. /dev: dev是Dev ...

  7. redis实现最简单的锁

    <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifact ...

  8. 单&双&单|双||的区别

    System.out.println(true|true);//true System.out.println(true|false);//true System.out.println(false| ...

  9. 查找 Search

    如果值域小一点. 那么我们有一个很精妙的做法. 分块完维护数字\(cnt\),和一个\(bitset\)信息. 然而小不得. 那么我们考虑维护后缀\(nxt_i\),表示第\(i\)位后,最近的\(a ...

  10. C4.5决策树-为什么可以选用信息增益来选特征

    要理解信息增益,首先要明白熵是什么,开始很不理解熵,其实本质来看熵是一个度量值,这个值的大小能够很好的解释一些问题. 从二分类问题来看,可以看到,信息熵越是小的,说明分类越是偏斜(明确),可以理解为信 ...