Appium在ios下获取页面元素的一种新思路

摘要:
传统思路手机app页面:新的方法:因为appium在ios中,通过driver.page_source属性,能得到一个xml格式的全部元素。#forpage_elinroot.iter:#print4、查找感兴趣的element的方法Element.Iter()方法Element.findall()查找当前element的孩子的属于某个tag的element。Element.find()查找属于某个tag的第一个element。下面代码就是通过循环获取相关页面元素并打印出来,因为是对xml文件进行操作,速度很快,并且获得的数据也很准确。

传统思路

手机app页面(框内是要获取的元素)

Appium在ios下获取页面元素的一种新思路第1张

Appium在ios下获取页面元素的一种新思路第2张

Appium在ios下获取页面元素的一种新思路第3张

新的方法:

因为appium在ios中,通过driver.page_source属性,能得到一个xml格式的全部元素。于是采用这种方法,得到了全部元素,适合查询浏览等这类较少操作的页面。

代码如下:

Appium在ios下获取页面元素的一种新思路第4张

主要用到的方法如下:

导入xml解析模块

1、import xml.etree.ElementTree as ET

生成xml文件,并对xml文件解析,得到根节点

2、

fp = open(xmlfile,'w')fp.write(driver.page_source)fp.close()

tree = ET.parse('test.xml')root = tree.getroot()

3、得到xml文件中所有的XCUIElementTypeStaticText节点数据。

# for page_el in root.iter('XCUIElementTypeStaticText'):

# print(page_el.attrib)

4、查找感兴趣的element的方法

Element.Iter()方法

Element.findall()查找当前element的孩子的属于某个tag的element。

Element.find()查找属于某个tag的第一个element。

Element.text访问element的文本内容。

Element.get()获取element的属性。

下面代码就是通过循环获取相关页面元素并打印出来,因为是对xml文件进行操作,速度很快,并且获得的数据也很准确。也不会报错。

Appium在ios下获取页面元素的一种新思路第5张

免责声明:文章转载自《Appium在ios下获取页面元素的一种新思路》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python中利用LSTM模型进行时间序列预测分析HTTP OPTIONS跨域请求下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mybatis几种开发方式

mybatis是比较轻巧的半自动化的CRM框架,它有几种开发方式,现今张列于此:    一.注解方式:在接口方法上面写SQL语句,有点类似springdataJPA 的query sql 语句       范例    @select("select * from  t_user ")     public  list<User> findAll...

第七部分(一) 动态渲染页面爬取(Selenium的使用)

Ajax分析和抓取方式,是JavaScript动态渲染页面的一种情形,可使用 requests 或 urllib 爬取数据。JavaScript动态渲染的页面不是只有Ajax一种,比如中国青年网 http://news.youth.cn/gn/ 的分页部分由JavaScript生成的,不是原始的HTML代码,但是不包含Ajax请求。又比如ECharts的...

Appium(二)---启动App+模拟滑动

环境搭建好了,就可以实现基本的操作,比如启动App和模拟滑动。这里我实现的是在真机(乐视1s)上启动抖音App,并滑动抖音的视频列表,代码如下: from appium importwebdriver from time importsleep classAction(): def __init__(self): #初始化配置,这里设置的...

java操作xm——添加、修改、删除、遍历

package com.xml.zh; import javax.xml.parsers.*; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.Tr...

vue Element动态设置el-menu导航当前选中项

1,npm install vuex --save 2,在src下新建vuex文件夹,新建store.js文件; store.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const state = { count: 0, adminleftnav...

Android内核开发:理解和掌握repo工具【转】

本文转载自:http://ticktick.blog.51cto.com/823160/1653304 由于Android源码是用repo工具来管理的,因此,搞Android内核开发,首先要搞清楚repo是什么东西,它该怎么使用?作为《Android内核开发》系列文章的第二篇,我们首先谈谈对repo工具的理解和使用。 1. repo是什么? repo是一种...