提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
用appium 模拟人滑动操作来获取app数据来避免经常换ip的情况,缺点是获取数据的速度会相对较慢,本文就介绍了appium获取数据内容。
一、appium是什么?
1,appium是开源的移动端自动化测试框架;
2,appium可以测试原生的、混合的、以及移动端的web项目;
3,appium可以测试ios,android应用(当然了,还有firefox os);
4,appium是跨平台的,可以用在ios,windows以及linux桌面系统上;
二、使用步骤
1.准备环境
Appium Server GUI 1.22.3-4
Appium Inspector 2022.5.4
夜神模拟器 使用的安卓系统是5.1.1
安卓系统要打开开发者模式,开启USB调试
2.实现思路
- 获取数据
通过Appium来操作模拟器来获取数据,用Appium Inspector,我们可以获取到app内的数据的class,id,xpath等,来定位元素的中的数据。
- 判断元素
通过这个方式只能获取到屏幕上显示的内容,所以要通过方法来判断元素是存在代码如下
代码如下:
from selenium.common.exceptions import NoSuchElementException
def isElementPresent(by, value):
try:
driver.find_element(by=by, value=value)
except NoSuchElementException:
# 打印异常信息
# print(NoSuchElementException)
# 发生异常,说明页面中未找到该元素,返回False
return False
else:
# 无异常,说明在页面中找到了该元素,返回True
return True
- 模拟滑动
模拟人为在滑动app内的内容,通过按住来获取下面产生的新数据,想要滑动后没有产生滑动惯性,就只能通过按下滑动后弹起松手,
代码如下:
from appium.webdriver.common.touch_action import TouchAction
# 获取鼠标的位置
def get_size():
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return(x,y)
l = get_size()
# 取宽的一半
x1 = int(l[0]*0.5)
# 从下面开始滑动
y1 = int(l[1]*0.8)
# 到上面的一个位置停止
y2 = int(l[1]*0.25)
action.long_press(x=x1 ,y=y1,duration=2000).move_to(x=x1,y=y2).release().perform()
3.项目实现
总结
以上就是今天要讲的内容,本文简单介绍了appium的使用,仅供学习交流使用