Appium 在 page 框架下,搭配 appium 创建 UI 自动化

徐健鑫 · 2019年11月26日 · 1368 次阅读

最近在同事的协助下,开始学习使用 page 框架下,使用 appium 搭建 app 的 UI 自动化,于是遇见了一下几个问题;
1.安装成功 apk 安装包后,无法启动 app,启动就闪退;
具体报错:
AttributeError: 'NoneType' object has no attribute 'get_window_size'

driver 代码如下:

向同事请教后,得出问题原因:因为没有将声明的 driver 的值返回出来,导致在运行 login 函数,引用 driver 的时候,driver 的值一直都是 none,在声明 driver 的时候,需要将 driver 的值返回出来,这样其他地方在引用这个参数的时候,才不会为 none;根据这个原因,修改后,代码如下:

主要修改就是新增:yield driver;这一段代码,作用时,将 driver 的值返回出来,yield 的作用相当于 return,具体用法可参考下面这篇文章https://blog.csdn.net/mieleizhi0522/article/details/82142856

2.引用 appium 中的滑动函数 swipe,一直报错:AttributeError: 'WebDriver' object has no attribute 'swipe';
根据网络上查到的资料发现原因是因为没有引用 appium 中的 webdriver,因为 swipe 这个函数是独属于 appium 中的,在 selenium 中并没有这个参数,因此,新增:from appium import webdriver;这里还有一个问题,根据网上的一些资料可以发现,如果同时引用了 selenium 和 appium,一定要注意先后顺序,防止 appium 被 selenium 覆盖掉,具体引用顺序如下:
from selenium import webdriver
from appium import webdriver

可解决 AttributeError: 'WebDriver' object has no attribute 'xxxx';这一类的问题,其中 xxxx 代表 appium 中独有的函数

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册