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. VM的三种连接方式(转载)

    概述: VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模 ...

  2. SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(3)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续上一节针对我们的重试进行测试 验证针对可重试的方法响应超时异常重试正确 我们可以通 ...

  3. 【linux系统】命令学习(一)ssh

    ssh 1.在终端执行命令  ssh -p22 username@host 2.密码输入是看不到内容的 3.登入成功后默认进入的是home目录,就是根目录下的home目录 4.[root@VM-4-1 ...

  4. dart系列之:创建Library package

    目录 简介 Library package的结构 导入library 条件导入和导出library 添加其他有效的文件 library的文档 发布到pub.dev 总结 简介 在dart系统中,有pu ...

  5. [loj6031]字符串

    为了方便,用$N=10^{5}$来描述复杂度 (对原串建立SAM)注意到$\sum|w|=qk\le N$,考虑对$q$和$k$的大小关系分类讨论: 1.若$q\le k$,即询问次数较少,将其与原串 ...

  6. /dev/random 和 /dev/urandom 的原理

    /dev/null 是一个特殊的设备文件,它丢弃一切写入其中的数据 可以将它 视为一个黑洞, 它等效于只写文件, 写入其中的所有内容都会消失, 尝试从中读取或输出不会有任何结果,同样,/dev/nul ...

  7. Hibernate数据校验简介

    我们在业务中经常会遇到参数校验问题,比如前端参数校验.Kafka消息参数校验等,如果业务逻辑比较复杂,各种实体比较多的时候,我们通过代码对这些数据一一校验,会出现大量的重复代码以及和主要业务无关的逻辑 ...

  8. 【JAVA】编程(6)--- 应用IO流拷贝文件夹(内含多个文件)到指定位置

    此程序应用了: File 类,及其常用方法: FileInputStream,FileOutputStream类及其常用方法: 递归思维: package com.bjpowernode.javase ...

  9. Perl 语言入门1-5

    第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/lo ...

  10. KeepAlived双主模式高可用集群

    keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提 ...