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

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

上文中我们看到,录制的脚本中使用坐标来操作界面,这样会遇到一个问题,比如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'")
  • 字符串相关:LIKE
    ?代表一个字符,*代表多个字符,使用方式如下
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'")
  • 字符串相关:CONTAINS、BEGINSWITH、ENDSWITH
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'")
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容