随笔分类 - 自动化测试
selenium Cannot find XX binary in PATH异常的出现原因
摘要:最近组里两个同事想学习selenium相关的东西,于是找了几个之前写好的例子传过去,结果用new HtmlUnitDriver(true)做driver跑的好好的,用new FirefoxDriver()之类的真实播放器driver作为driver就跑不起来,抛出Cannot find firefoxbinary in PATH之类的异常;经排查发现,他们的firefox、chrome安装路径都不是默认路径,猜想可能就是这个原因。假如是这个原因,ie肯定是默认路径下,于是把driver换成new InternetExplorerDriver(),结果一切正常。结论:当使用真实浏览器作为web
阅读全文
ByteBuffer中不容忽视的flip()方法
摘要:最近在对一个thrift的service端进行自动化测试,做了一个thrift的client端,client端需要传一个装有由protobuf实例序列化byte数组的ByteBuffer,实现方法为:ByteBuffer key=ByteBuffer.allocate(p2q.toByteArray().length);key.put(p2q.toByteArray());但是client收到的service端的返回始终不正确。由于protobuf之前没有用过,是个新鲜的玩意,所以始终怀疑问题出在这块儿了;反复查找,并对该protobuf实例在本地进行了反序列化,结果发现一切OK……。经过无数
阅读全文
使用webdriver的几点粗浅总结
摘要:1.htmlunitdriver比浏览器driver性能上出色很多,能不用浏览器driver尽量不用;2.htmlunitdriver各种bug比较多,能找到具体问题解决掉更好,能通过变通的方式解决也不失为好办法;3.有时候改变一下业务实现方式,如之前文章里提到的抓第三方登录的认证cookie,有登陆框和登录页两种方式去登录,不过用登录页去实现要简洁很多,业务逻辑和技术能力结合有更好的实现效果;4.htmlunitdriver有些bug是由于其底层类中有的地方未对exception作catch处理,遇到异常通不过去时,可以尝试将通不过的代码放到try catch中处理一下
阅读全文
用selenium2\htmldriver模拟第三方登录(新浪微博、qq等),取cookie
摘要:进行播放记录等后台api的自动化测试时,需要后台鉴权,本站注册用户这块容易解决:通过httpclient向相应的passport接口提交请求,抓取cookie;第三方登录由于涉及到第三方的接口和回调处理,逻辑较为复杂,用之前方法实现比较麻烦。权衡之后决定用selenium实现。 selenium的实现过程比较顺利,不过遇到两个小情况:1.iframe上元素的查找、捕获,实现方式driver.switchTo.frame(iframeId);2.在主页面上click链接打开新页面,新页面与主页面切换后才能对新页面进行操作,实现方式:1 WebDriver popup = null;2 for .
阅读全文
浙公网安备 33010602011771号