今天公司那个app的UI自动化测试脚本就差不多了,再优化就是 增加发送邮件-分布式执行,暂时就没那么忙碌了。
长按 long_press() 实现发送语音
公司app的即时通讯功能我已经放弃治疗,所以拿着微信来做个分享,如果想发送语音,如何用脚本来实现呢?
这是今天的主角:
下面是代码:
def test_01(self):
from appium.webdriver.common.touch_action import TouchAction
self.driver.implicitly_wait(5)
self.driver.find_element_by_xpath(self.weixin_xpath).click()
self.driver.find_element_by_id(self.touxiang_id).click()
self.driver.find_element_by_id(self.liaotian_biaoqing_id).click()
self.driver.find_element_by_id(self.liaotian_yuyin_id).click()
TouchAction(self.driver).long_press(self.driver.find_element_by_id(self.liaotian_yuyin_shuohua_id), duration=5000).release().perform()
time.sleep(1)
TouchAction(self.driver).long_press(self.driver.find_element_by_id(self.liaotian_yuyin_shuohua_id), duration=5000).wait(3000).release().perform()
time.sleep(1)
self.assertTrue(self.driver.find_element_by_id('com.tencent.mm:id/aa3'))
多说几句:
1.没有使用显式等待,偷懒 直接隐式等待了;
2.前面几行是 进入某个会话,点击了那个扬声器的小图标;
3.预期结果是 发送2条语音,一条持续5秒,一条持续8秒(持续长按5秒+等待3秒)
4.下次再进入次会话官方版本是 直接说话(故不能再点击扬声器) 解决方法:先点击 表情;
5.断言部分是验证的会话是否有这条语音信息。关于断言,实际是应该在用例最后 做个清空聊天记录的处理;因为时间有限,我就手工执行了。
结果:
其实是应该昨天做更新,但我嫌弃微信的最新版本太占内存,换了个谷歌市场版本,所以所有元素定位的属性值全部更改,再确定没啥问题后,跑这条用例反而全都失败。所以今早特地再来排查问题,发现没问题。
交流技术 欢迎+QQ 153132336 zy