appium安卓app自动化,遇到搜索框无搜索按钮元素时无法搜索的解决方案

如XX头条,搜索框后面有"搜索"按钮,这样实现搜索操作较为方便。

但有些app没有设置该搜索按钮,初学者就要花点时间去学习怎么实现该功能了,如下图。

这时候如果定位搜索框,再点击操作,再输入文本后,再使用driver.press_keycode(66),发现无法实现搜索功能,如图,只实现了输入文本功能。

目前学习到一种方法,如下:

1、手机下载搜狗输入法

在手机应用商店下载一个搜狗输入法,在电脑打开cmd窗口,输入命令

复制代码
adb shell ime list -s

如图,会出现自己手机现有的输入法

2、在pycharm编写的脚本中,导入os库

定义一个变量,如:

复制代码
sougou='adb shell ime set com.sohu.inputmethod.sogou/.SogouIME'

3、利用os库切换输入法至搜狗输入法,执行driver.press_keycode(66)

定位搜索框元素后,再点击操作,再输入文本操作,再通过os转换输入法,再执行driver.press_keycode(66),便可以执行搜索操作

小白代码如下:

复制代码
from appium import webdriver
import time
from selenium.webdriver.common.by import By
import os
# 定义参数
desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '11', # 手机安卓版本
  'deviceName': '安卓', # 设备名,安卓手机可以随意填写
  'appPackage': 'com.netease.cc', # 启动APP Package名称
  'appActivity': 'com.netease.cc.appstart.CCMain', # 启动Activity名称
  'unicodeKeyboard':True, # 使用自带输入法,输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App
  'newCommandTimeout': 6000,
  'automationName' : 'UiAutomator2'
}
# 定义sougou变量
sougou='adb shell ime set com.sohu.inputmethod.sogou/.SogouIME'
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置时间等待,避免找不到元素报错
driver.implicitly_wait(10)
time.sleep(9)
# 点击首页
driver.find_element(by=By.XPATH, value='//android.widget.TextView[@text="首页"]').click()
# 点击搜索框,输入主播昵称
driver.find_element(by=By.ID, value='com.netease.cc:id/hot_word').click()
# 转换为搜狗输入法
os.system(sougou)
# 在搜索框输入主播昵称
driver.find_element(by=By.ID, value='com.netease.cc:id/et_search_content').send_keys('power1')
# 实现手机键盘自带搜索操作
driver.press_keycode(66)
time.sleep(3)
# 结束
driver.quit()

4.如果切换键盘之后还是没有反应,可以试试如下方法,我在实验后是生效的

复制代码
driver.execute_script("mobile:performEditorAction", {"action": "search"}) 
相关推荐
测试员周周7 小时前
【Appium 系列】第04节-Page Object 模式 — BasePage 基类设计
开发语言·数据库·人工智能·python·语言模型·appium·web app
测试员周周7 小时前
【Appium 系列】第02节-环境搭建 — Android + iOS 双平台环境配置
开发语言·人工智能·功能测试·appium·自动化·测试用例·web app
测试员周周8 小时前
【Appium 系列】第01节-Appium 是什么 — 移动端自动化的行业标准
开发语言·人工智能·python·功能测试·appium·自动化·测试用例
测试员周周9 小时前
【Appium 系列】第03节-驱动初始化 — BaseDriver 的设计与实现
开发语言·人工智能·python·功能测试·appium·测试用例·web app
川石课堂软件测试5 天前
软件测试|常见面试题整理
数据库·python·jmeter·mysql·appium·postman·prometheus
qq_452396238 天前
第十八篇:《移动端UI自动化:Appium入门实战》
ui·appium·自动化
x-cmd11 天前
agent-browser 源码分析(四):Chrome 进程管理与多 Backend
chrome·appium·进程管理·webdriver·agent-browser
阿祖_in_coding17 天前
混合App(Hybrid App)自动化测试理解
appium
returnthem24 天前
安装Appium
appium
seabirdssss1 个月前
Appium 在小米平板上的安装受限与闪退排查
android·appium·电脑