美文网首页
appium-按键操作(AndroidKey)+输入法

appium-按键操作(AndroidKey)+输入法

作者: 测试探索 | 来源:发表于2022-05-18 15:36 被阅读0次

所需要的包:

from appium.webdriver.extensions.android.nativekey import AndroidKey

按键操作:

AndroidKey类

应用的搜索功能,搜索键在软键盘上的。使用Enter键来代替搜索键。
Enter键 : keyevent:66
Back键:4
Home键:3
按键操作:
driver.press_keycode(AndroidKey.ENTER)

输入法操作:

启动参数当中关于输入法:
unicodeKeyboard=True

输入法的操作(输入中文时):
1、获取当前设备可用的输入法:
driver.available_ime_engines
2、获取当前正在使用的输入法:
driver.active_ime_engine
3、切换为其它输入法:
driver.activate_ime_engine(输入法名,可以从1中获取到)
4、输入完成,想要收起键盘:
driver.hide_keyboard()
5、键盘是否显示:
driver.is_keyboard_shown()

输入法切换的场景:
1、用send_keys输入中文,但是在app的页面当中,并没有显示出输入的内容。
需要切换到,中文输入法。

from time import sleep
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
from appium.webdriver.extensions.android.nativekey import AndroidKey

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "emulator-5554",
    "appPackage": "com.lemon.lemonban",
    "appActivity": "com.lemon.lemonban.activity.WelcomeActivity",
    "noReset": True,
    "noSign": True,

}
# 跟appium之间建立会话
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
wait = WebDriverWait(driver,7)

# 点击题库
id_loc = (MobileBy.ID,"com.lemon.lemonban:id/navigation_tiku")
wait.until(EC.visibility_of_element_located(id_loc))
ele = driver.find_element(*id_loc)
ele.click()


# 搜索图片按钮
search_imgage_loc = (MobileBy.CLASS_NAME, 'android.widget.ImageButton')
wait.until(EC.visibility_of_element_located(search_imgage_loc))
ele = driver.find_element(*search_imgage_loc)
ele.click()

# 获取当前所有可用的输入法
print("所有可用的输入法:",driver.available_ime_engines)
print("当前正在使用的输入法:",driver.active_ime_engine)
print("切换输入法到 io.appium.settings/.UnicodeIME")
driver.activate_ime_engine('io.appium.settings/.UnicodeIME')
print("当前正在使用的输入法:",driver.active_ime_engine)

# 往搜索框当中输入内容
input_text_loc = (MobileBy.XPATH, '//*[@text="Search"]')
wait.until(EC.visibility_of_element_located(input_text_loc))
ele = driver.find_element(*input_text_loc)

ele.send_keys("数据库")
driver.press_keycode(AndroidKey.ENTER)

相关文章

网友评论

      本文标题:appium-按键操作(AndroidKey)+输入法

      本文链接:https://www.haomeiwen.com/subject/alytprtx.html