Appium iOS Python3(三)~脚本使用(元素的获取

2019-09-30  本文已影响0人  blaze冰叔

书接上文,我们讲到了录制脚本,这节来聊聊自己手动写脚本

上文中我们看到,录制的脚本中使用坐标来操作界面,这样会遇到一个问题,比如actionSheet,alert,或者其他自定义的视图(效果如模态视图),操作会出现相应异常
此时,我们就可以使用第二种方式来进行操作
1 通过appium中的appSource查找你所要操作的元素


image.png

然后右侧SelectedElement中可以看到FindBy 和Selector

btn=driver.find_element_by_xpath("//XCUIElementTypeButton[@name='home dt']")
btn=driver.find_element_by_accessibility_id('home dt')
#这俩是等效操作
btn.click()
btn=driver.find_element_by_xpath("//XCUIElementTypeButton[@name='home dt']")
btn=driver.find_element_by_accessibility_id('home dt')

接下来我们再来一种方式
noidea=driver.find_element_by_ios_predicate("value CONTAINS '123456'")

'123456' 是在Xcode中设置好的UITextView的 accessibilityValue属性
这里就建议iOSer开发过程中,可以配置这些参数,以供后续自动化测试使用
mytextView.accessibilityValue = @"123456";

使用Predicate定位,可支持元素的单个属性和多个属性定位,强烈推荐的一种方式
常用的有下面方式

driver.find_element_by_ios_predicate("value>100")
driver.find_element_by_ios_predicate("value=='123456'")
driver.find_element_by_ios_predicate("value LIKE '123?56'")
driver.find_element_by_ios_predicate("value LIKE '12???6'")
driver.find_element_by_ios_predicate("value LIKE '1*6'")
driver.find_element_by_ios_predicate("value CONTAINS '123456'")
driver.find_element_by_ios_predicate("value CONTAINS '123'")
driver.find_element_by_ios_predicate("value CONTAINS '456'")
driver.find_element_by_ios_predicate("type == 'XCUIElementTypeTextView' AND value LIKE '1*6'")
上一篇 下一篇

猜你喜欢

热点阅读