干嘛要把 self 传进去?
看下你本地的 Firefox 浏览器和驱动是否已正确安装
前端是可以被跳过的
看论坛里有关 UI 自动化的讨论,认为性价比不高、收益不高的还是挺多
说下我现在在维护的这套工具吧:
开发阶段:
主要考虑以下方面:
后续不断使用过程中添加的优化:
先想想你为什么要做这样一个平台,要帮你解决什么问题。
开发一个系统,最重要的是你的使用需求
get_browser() 没有返回 driver 吧
试下 by class 或者 by text 来定位, 可能要比 css 稳定一些
网站前后端不分离是怎么实现的?
selenium 的 Select 模块了解下, 直接 select by index\value\text , 会方便很多
loginButton.click();
//页面刷新
driver.navigate().refresh();
是否点击完马上执行了下面的刷新,所以原来输入的用户名密码被重置为空了
建议先从一些能帮助你工作的地方入手,例如自动化测试、性能测试、接口测试,或者写个小脚本帮你造造数据,连接数据库查数等。
是指不在同一个 iframe 吗? 可以通过 switch to frame 来切换。
就是 mock 吗
如果是手工测试的话,你们是如何定义是否已通过呢? 手工测试通过的标准,理论上都可以转化为 assert 来操作。
哈哈,刚好输入的内容就是对应的 value 属性
driver.find_element_by_name("uri").get_attribute('value')
or
driver.find_element_by_name("uri").get_property('value')
赞!
更新 2 :
更新 selenium 版本后, 最大化也正常了:
driver.maximize_window()
试过了,不起作用
今天补充调用 Firefox 节点时遇到的两个问题:
Error forwarding the new session cannot find : Capabilities {browserName: firefox, javascriptEnabled: true, marionette: false, version: }
对比下 webdriver.DesiredCapabilities.FIREFOX 和 webdriver.DesiredCapabilities.CHROME 的参数结构,发现 Firefox 中多了一个参数 marionette(默认是 false)。
搜索一下,是 Firefox 新的驱动,手动改为 true ,不再报这个错误。
搜索一下,说是 selenium 版本的问题。升级到最新版本后,问题解决。
实际上升级版本后, DesiredCapabilities.FIREFOX 的 marionette 默认已改为 True, 问题 1 其实也解决了:
我不是大神。
说实话, md5 加密和发送 post 请求,网上资料非常多, 真的不需要惊动大神。
如果你尝试过不行,应该根据具体的问题报错去搜索解决办法,或者把具体的代码和报错发上来请教。
这个接口做的事情:
md5(md5(会员 ID)+xml+ 密钥)
*/
String sign = Utils.md5(xml);
参数组装:
CommonUrls.params.put("data", xml); //必填 xml 文件Å
CommonUrls.params.put("service", "DTICK_B2G_searchTicket");//接口名称
CommonUrls.params.put("sign", sign);//md5 加密后的 xml 文件
发送 post 请求并打印结果
String result = HttpClientUtils.doPost(address, CommonUrls.params, "utf-8");
System.out.println(result);
自己写吧,这些都是 python 很基本的操作,百度一下就能找到答案