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. Part 37 Difference between $scope and $rootScope

    In this video we will discuss the difference between $scope and $rootScope. The main difference is t ...

  2. C#与dotNET项目想要另存为一个新项目sln文件丢了怎么办

    如下图所示,我想要另存一个工程,把 V4.4整个的项目另存为V4.5,我可以把解决方案文件(.sln)改名字,但是我没法把文件夹改名字,改了打开sln就说找不到. 很简单的一个思路是反正sln是多余的 ...

  3. ES6基础知识(Map用法)

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

  4. 菜鸡的Java笔记 - java 断言

    断言:assert (了解)        所谓的断言指的是在程序编写的过程之中,确定代码执行到某行之后数据一定是某个期待的内容        范例:观察断言 public class Abnorma ...

  5. [loj2265]最长上升子序列

    以下内容参考2019年集训队论文<浅谈杨氏矩阵在信息学竞赛中的应用> 1.前置知识 杨表 标准杨表:一张网格图,满足以下条件-- 1.设其有$m$行.第$i$行有$a_{i}$个格子(格子 ...

  6. SpringMVC注解搭配环境

    1.准备文件 2.工程中的pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  7. Android系统编程入门系列之硬件交互——多媒体摄像头

    多媒体系列硬件 多媒体包括图片.动画.音频.视频,这些多媒体素材的采集(输入)主要依靠摄像头和麦克风等硬件设备转化为基础数据,而他们的播放渲染(输出),则需要依靠具有相关功能的编解码软件.当然随着硬件 ...

  8. git使用小技巧

    1. 合并一个分支的某次提交到另一个分支上 例如 将dev的某次提交 asfdiwehfsalkdnva872383 合并到master # git checkout master # git che ...

  9. Go语言核心36讲(Go语言实战与应用十五)--学习笔记

    37 | strings包与字符串操作 Go 语言不但拥有可以独立代表 Unicode 字符的类型rune,而且还有可以对字符串值进行 Unicode 字符拆分的for语句. 除此之外,标准库中的un ...

  10. IDEA安装JavaFx

    jdk11之后jdk就不内置javafx了,需要自己下载 在idea中新建JavaFx项目: 创建成功后发现代码标红 这个时候要把刚刚下载的JavaFx包解压后添加进去 ​ 选择到自己解压的路径的文件 ...