0928Appium app自动化测试经验分享

今天的工作写DDM的脚本;因为ui极大改变,我又重新写,但是运用PO模型,然后许多定位的方法已经封装好了,其实并不麻烦。因为还没写到要我死的那些细枝末节的功能!!!

By。ID 故意写出这,其实里面是. 英文符号.

一)app自动化测试获取text 方便断言
目前我知道的三种方式
1.直接获取text属性值
xin_find_element(By。ID , self.name_id).text
举例
某用户名的断言self.assertEqual(self.xin_find_element(By。ID, self.name_id).text, ‘177’)
2.使用get_attribute(‘name’)
实际这是获取content-desc属性,如果content-desc属性为空,那么获取的才是text属性。
xin_find_element(By。ID, self.name_id).get_attribute(‘name’)
因为我定位的这个元素是没有content-desc的,所以就获取text
3.使用get_attribute(‘text’)
xin_find_element(By。ID, self.name_id).get_attribute(‘text’)

二)在第一个问题深入下 某个元素text的值,内部有部分要截取 来断言
其实就是字符串的截取
举例 某车牌的断言
abc = self.xin_find_element(By。ID, self.aiche_chushi_liji_text_id).text
print(abc[-7:])
self.assertEqual(abc[-7:], ‘鲁SSSSSS’)

三)发送语音–长按longPress() 手指不释放 还得再次确定,请先忽略此分享
第一步 from appium.webdriver.common.touch_action import TouchAction
第二步 TouchAction(driver).long_press(XXXX).wait(xx).perform()
XXXX定位某元素 xx等待时间
举例
TouchAction(self.driver).long_press(self.xin_find_element(ByID, self.yuyin2_id)).wait(5000).release().perform() 这样长按6s

因为appium的网上资料很多都是Java语言写的,理解起来不是很难,但是会怕实际语法的不同,会掉进坑里,只能自己边实验边学习。
longPress()这个方法,可以传入一个参数,Duration duration,持续时间(默认1000毫秒):既然长按,得有按的时间吧。但我觉得是个大坑:
我最初写的 这样实现长按10s
action1 = TouchAction(self.driver)
action1.long_press(yuyin, 10000).perform()
time.sleep(10)

但是这样实现 觉得很不对。今早特地多了解,才有上面的例子,长按只传入元素,后面添加wait方法【按住元素后的等待时间】,来实现。

release() 结束的行动取消屏幕上的指针。这样理解 release() 释放手指
Perform() 执行的操作发送到服务器的命令操作

五)预生产环境:测试环境和正式环境,今天说的这个预生产环境是 完全对正式环境的一种翻版,这个正常,so正式环境就正常,有时候app上架前会这样测试

明天分享 swipe()滑动 可以封装,可以使用TouchAction的方法

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/82876779