前提: 排除xpath引用错误或元素的xpath每次都不同的情形. 问题描述 自动化脚本中click()方法和sendKeys()方法报错, 返回异常InvocationTargetException. 根本原因 1) 元素被遮挡. 比如操作元素前一步有个弹出框, 在操作元素时弹出框还未关闭. 2) 有两个标签页, 所要选择的元素存在于其中一个标签页 3) 有两个form, 所要选择的元素存在于其中一个. 解决办法 如果是第一种情形, 加等待就可以解决. 另外两种情形, 有时在xpath前面加点…
1. 问题 在自动化应用的时候 ,有时候环境变量与运行需要不一致.这时候有两种选择: 改变节点环境变量,使得其和运行需求保持一致: 在自动化脚本中设置环境变量,其范围只在脚本运行环境中有效. 显然,当需要运行多个自动化脚本,每个的需求不一致的时候,选择2是更好的设计. 2. 解决方案和案例 假设我们有两个java的运行版本,一个是本节点上的java,版本7:另一个是云盘上共享的版本8.我们需要运行elasticsearch 6.2.3,它需要java8.而我们不希望更新节点上的java: jav…
目的 通过对appium-desktop脚本录制功能进行二次开发,使录制的java脚本符合我司自动化框架要求. 实现步骤 1.增加元素名称的输入框 由于ATK(我司自动化测试框架)脚本中元素是以“app-page-element”的方式定位元素,所以需要用户输入page名称和element名称,并保存到数据库中. 1.1.实现方案 在现有的Tap.Send Keys.Clear操作上增加元素输入框操作,如图 1.2.代码修改 1.2.1.修改onClick方法 修改Inspector/Selec…
1.简介 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本.前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣. 宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言.自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段.断言的写法,就考验出一个测试工程师是否考虑全面…
上一篇博客,我写了python自动化框架的一些知识和粗浅的看法,在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的.你在测试过程中肯定会遇到一些莫名其妙的问题,比如:web某个页面一直在刷进度条,导致你定位元素失败,但是,你再手动操作一遍可能无法复现....对于我们来说,肯定会遇到许多类似的问题.你会发现有时候仅仅靠一张截图,你远远找不到bug的原因.这时候,我在想如果我能拿到这一系列操作所调用的接口信息多好,我就能明白为什么发送这种问题了.比如…
经过上一篇的环境搭建,这一篇我们开始编写第一个自动化脚本. 一个简单的测试百度的demo #coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") driver.find_element_by_id("kw").send_keys("selenium") driver.find_eleme…
之前一篇博客已经讲述怎样手动使用appium-desktop启动测试机上的app,但我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app.环境为Windows10 + Python3.7 + appium1.18.0 + Android手机 + 今日头条app + Pycharm 一,连接测试手机,获取测试机及被测APP配置 具体的获取方法请参考APP自动化测试之appium连接真机启动app,配置信息如下: { "plat…
Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境   [root@SZDB ~]# more /etc/issue   CentOS release 5.9…
通常在执行自动化过程中可能需要将root用户切换到其他用户进行执行,如:oralce 但是,执行的命令又要回到root用户下,继续执行root用户下的其他命令. 此时需要了解 su 命令中的参数 -c  或 -s 比如: # su - oracle -c "pwd"/home/oracle 或 su - oracle -s /bin/sh test.sh 此时执行的test.sh中相关命令要在bin/sh下,换句话说,bin/sh支持的命令才能执行. 当然我们可以将结果重定向到其他的文…
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \…