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

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

1. 脚本内容如下

[python]  view plain  copy
  1. import os  
  2. import time  
  3. from appium import webdriver  
  4.   
  5. apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))  # 获取当前项目的根路径  
  6.   
  7. desired_caps ={ 'platformName''Android',  
  8.                 'platformVersion''6.0.1',  
  9.                 'deviceName''KIW-AL10',  
  10.                 'noReset'True,  
  11.                 'appPackage''com.baidu.searchbox',  
  12.                 'appActivity''com.baidu.searchbox.SplashActivity',  
  13.                 'unicodeKeyboard'True,  
  14.                 'resetKeyboard'True  
  15.                 }  
  16.   
  17. driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app  
  18. time.sleep(3#app启动后等待3秒,方便元素加载完成  
  19. # 根据元素xpath来定位  
  20. # 点击“输入框”  
  21. driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()  
  22. # 输入字段  
  23. searchInputBox = driver.find_element_by_id('com.baidu.searchbox:id/SearchTextInput')  
  24. searchInputBox.send_keys("Appium")  
  25. driver.press_keycode(66# 点击屏幕键盘的搜索键  
  26. time.sleep(1)  
  27. #断言:由于手机百度搜索列表页,每个结果都不可以进行元素定位,所以无法通过搜索命中高亮显示来断言。  
  28. #这里采用搜索输入框显示的文字是我们输入的字段来简单断言一下  
  29. searchEditBoxText = driver.find_element_by_id('com.baidu.searchbox:id/SearchTextInput')  
  30. if(searchEditBoxText.text == 'Appium'):  
  31.     print("Test pass.")  
  32. else:  
  33.     print("Test Failed!!")  
解释脚本

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

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

[python]  view plain  copy
  1. <span style="font-family:'Microsoft YaHei';font-size:18px;">searchEditBoxText.text == 'Appium123'</span>  
       这里还有两点需要知道。1. 没运行下一次测试之前,需要停止Appium server,然后再次启动服务,不然会报session不同的错误。这个可以在appium界面点击Advance-allow session overwrite。 2.运行上面脚本后,你的手机应该会默认设置隐藏键盘,是这样代码引起的resetKeyboard=True,事后解决办法是,在设置-高级设置-语言和输入法,然后把默认输入法改成搜狗就好了。

猜你喜欢

转载自blog.csdn.net/qq_24857309/article/details/79664414