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

来源:互联网 发布:mac隐藏菜单栏快捷键 编辑:程序博客网 时间:2024/04/27 03:36

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

1. 脚本内容如下

import osimport timefrom appium import webdriverapk_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)#启动apptime.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,事后解决办法是,在设置-高级设置-语言和输入法,然后把默认输入法改成搜狗就好了。