你看你两个调用到 AppiumTest().get_driver() 方法的地方,一个传了 driver, 一个没有传,说明肯定有一个弄错了。
看你 AppiumTest().get_driver() 的定义是初始化 driver,所以是不需要传入 driver 的。
self.driver = AppiumTest.get_driver(driver)
改为
self.driver = AppiumTest.get_driver() 试试
你是想调用下面的 login 方法? 好像是调用错了吧
暂时还在内部试用,部分功能还在完善,待整理完成再共享出来
想看后面的 ‘放弃’
话说 PPT 转 PDF 的时候是否有问题呢? 看到有不少是空白页,比如这样:
Python+macaca /selenium/appium
Python 最后实现了这个方法吗? 例如想调用 Ctrl + - 实现页面缩小。
selenium 里面是可以的,macaca 怎么做都发现没效果。
我指的是模拟键盘操作,比如按 ctrl+C
输入是没问题的
不是输入不了,而是输入有遗漏?
下拉框可以使用 select 方法来操作。
语法: Select(object).select_by_value(value) \ Select(object).select_by_index(index)
具体可参考 selenium.webdriver.support.select.py 文件
重点调试下从 txt 里读取出来的数据对不对吧,加多几个输出看下
检查下你的脚本目录是否正确吧
最好截个图,不然别人没办法帮你检查的
自动化测试主要是为了节省将来回归测试的时间。
例如下次更新版本,要对所有接口功能回归一遍,如果仍然按人手去测试,需要 4 天/人; 如果跑自动化测试脚本,可能半小时就完成了。
自动化测试,执行的次数越高,越体现出它的价值。
webdriver 一般都提供两类查找元素的方法:
查找单个元素: find_element_by, 返回符合条件的第一个元素
查找多个元素: find_elements_by, 返回符合条件的所有元素
建议可以尝试用下面的方式,用 for 循环逐个点击
通过同样的方式应该也是可以解决的,具体可以看下 selenium 里 select 的实现
你先试下直接在 Linux 服务器上执行 Python run.py 看能否执行成功,如果不行就看是否模块没安装好,如果可以,就可以配到 Jenkins 了。
我的理解 Jenkins 里只是一个调用,前提是你的命令本身是可运行的。
直接用开发封装好的方法,就代表你对这个方法是信任的,但其实开发的这个方法,也有 bug 的风险。
如果规范一点,大家都是按照定义好的规则来开发和模拟,应该就是对应的; 至于实现,我们目前的验签规则还没遇到复杂到只有 java 能实现,Python 不能实现的程度, 即使有,感觉也是可以模拟的。
def verify(a, b):
if a == b :
result = 1
else :
result = 0
driver.screenshot("fail.png")
类似这样就可以了, 就是看你想要什么时候去做截图(上面 try 的例子是异常截图, 我的例子是验证失败的时候截图)
可以确定是以 alert 方式弹出的吗? 方便的话可以贴一下这部分的 hierarchyviewer 结构吗?
如何封装断言,可以参考下面的帖子:
https://testerhome.com/topics/8883
成功了也截图,是有时候执行后需要看对应的结果,如果你不需要就不用截了
我们也有类似的接口,做法是根据后台的验签规则,用 Python 模拟生成测试数据
我的做法是把断言方法封装一下,例如 verify(button.title, 'register')
如果 button.title == register, 测试通过,然后截图,保存到正常截图的目录,作为测试执行成功的记录;
如果 button.title != register, 测试失败, 并且截图保存到失败的目录,方便检查执行失败的记录。
另外如果执行过程中出错(不是断言,而是其他执行的步骤,如找不到元素),也字段截图保存。
试过了,没解决
试下用 driver.close()