您的位置:首页 > 移动开发

Appium基础篇12-解决执行完脚本,手机键盘隐藏的问题

2017-09-10 22:55 525 查看
        学到了这篇,我们开始来写一个自动化测试脚本,重点在测试,也就是说断言。这前面我们只不过是把点击和输入转换成自动化的方式,这篇开始,我们需要加入断言,这样才能算一个完整的自动化测试脚本。

1. 脚本内容如下

import os
import time
from appium import webdriver

apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))  # 获取当前项目的根路径

desired_caps ={ 'platformName': 'Android',
'platformVersion': '6.0.1',
'deviceName': 'KIW-AL10',
'noReset': True,
'appPackage': 'com.baidu.searchbox',
'appActivity': 'com.baidu.searchbox.SplashActivity',
'unicodeKeyboard': True,
'resetKeyboard': True
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app
time.sleep(3) #app启动后等待3秒,方便元素加载完成
# 根据元素xpath来定位
# 点击“输入框”
driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
# 输入字段
searchInputBox = driver.find_element_by_id('com.baidu.searchbox:id/SearchTextInput')
searchInputBox.send_keys("Appium")
driver.press_keycode(66) # 点击屏幕键盘的搜索键
time.sleep(1)
#断言:由于手机百度搜索列表页,每个结果都不可以进行元素定位,所以无法通过搜索命中高亮显示来断言。
#这里采用搜索输入框显示的文字是我们输入的字段来简单断言一下
searchEditBoxText = driver.find_element_by_id('com.baidu.searchbox:id/SearchTextInput')
if(searchEditBoxText.text == 'Appium'):
print("Test pass.")
else:
print("Test Failed!!")
解释脚本

       在driver.press_keycode(66), 这个表示搜狗输入法键盘上的“搜索按钮”,这个可能输入法不同造成这个地方可能不是66,这里需要注意。由于手机百度,在搜索结果列表,不支持对搜索结果项进行元素定位,所以无法正常默认手工测试的断言,这里只好简单断言下,输入的“Appium”会不会在搜索框内显示。由于这个问题,下篇文章,我可能要换一个app来演示测试。

如果你想测试失败,你可以写成

searchEditBoxText.text == 'Appium123'
       这里还有两点需要知道。1. 没运行下一次测试之前,需要停止Appium server,然后再次启动服务,不然会报session不同的错误。这个可以在appium界面点击Advance-allow session overwrite。 2.运行上面脚本后,你的手机应该会默认设置隐藏键盘,是这样代码引起的resetKeyboard=True,事后解决办法是,在设置-高级设置-语言和输入法,然后把默认输入法改成搜狗就好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐