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"}) 
相关推荐
阿祖_in_coding18 小时前
混合App(Hybrid App)自动化测试理解
appium
returnthem8 天前
安装Appium
appium
seabirdssss13 天前
Appium 在小米平板上的安装受限与闪退排查
android·appium·电脑
小陈的进阶之路17 天前
Selenium 滑动 vs Appium 滑动
python·selenium·测试工具·appium
小陈的进阶之路17 天前
Appium 自动化测试笔记
笔记·appium
linglan42819 天前
APPium环境配置
appium·自动化
lifewange25 天前
Appium是什么
appium·压力测试
柚子+1 个月前
Appium+python+雷电模拟器自动化测试入门
数据库·python·appium
@Aurora.1 个月前
【GUI自动化测试】--基于QQ音乐项目的GUI自动化测试
appium