两个月没来了 今天开始要学会总结
干活要灵活。
最近写一个将自动化测试结果自动更新到内网的wiki上的小脚本,wiki环境是mediawiki搭建的,上面就是一些文章的展示。
开始我的思路1是:python直接操作mediawiki的数据库,直接找到文章表,直接增删查改多好啊。后来发现字段里面类型比较不好整,BLOB这玩意没接触过啊。擦,拉到拉到。
后来我的思路2是:看mediwiki的源码和文档,找到更新文章的api,然后调用相应的增删查改方法就可以了。后来发现第一我的英文太差,第二mediawiki整体的结构说的不是很细,看不懂。毕竟这不是框架,不会一步一步告诉你怎么回事。mediawiki的工作更多的是让你快速搭建wiki环境同时又避免接触代码。又pass了
后来我的思路3是:模拟表单提交的操作,也就是把表单里用到的变量都准备好,完了按照form表单地址去提交,妥妥的么。就在这,我犯了个错误,导致我写了小一天没写出来,也导致有了这篇文章。错误开始:原因是因为之前的工作中用到了selenium自动化测试工具和python的beautifulsoup模块,他俩的操作有一处很相似,就是可以在整个类xml文档中(html等等类似的)随便找标签,想找什么标签找什么标签,相当强大,而且支持多种定位方式,xpath就是定位方式之一,很灵活,很好用,也是学selenium时学到的。但就是因为这样,把我的思维定死在整个文档找标签这条路上。错误结束。回到正题,我在整个文档中搜索form表单元素,最后确定了几个input和一个textarea,然后各自取值,然后保存,然后发送post请求,然后,就没有然后了,特么不好使有木有啊。接下来的半天里就是各种调各种改,就是不好使,也不知道哪里不对。最后要下班了,没办法用只能用selenium操纵浏览器模拟操作算是实现了功能。但是太笨了,每次都要出现浏览器在屏幕上自动跑页面,真的很傻。
今天一看不行实在太傻了,又写,依旧是思路3的路子,我就不信了,整不出来你。而且还上sf上问了个问题,说实话sf上的网友很给力,几分钟就有回复了,告诉我看文档。又是一个多小时过去了。没有任何进展,靠。上厕所鸟个鸟吧。在卫生间里拿着小弟弟的时候,感觉是那么宁静,那么悠然自得,才思如尿崩,随着一个尿抖,顿时想通了。
所以我的思路4是:我不是想拿到表单元素的值用来post么,那元素的数据就在接受页肯定是最全的呀,那我去接受页看一下有啥不就好了么,然后我再依次构造数据,再提交表单妥妥的呀。说干就干,在接受页.php中打印出$_POST全局变量一看,妥了,就这些,我依次构造吧。没错,结果成功了,就是这么简单,这个思路前后十几分钟就哦了,但是整个下来却用了两天。
思维要灵活,别被环境所束缚。
扯淡完毕