在jybot下跑Selenium2Library
应用场景:项目组要将原有SeleniumLibrary写的脚本切换到Selenium2Library(后称S2L)下,但是原来有很多Java写的库,综合考虑认为还是在Jython下跑比较合适。但是安装S2L后,pybot下运行正常,jybot下报No module found错误。
解决问题过程:
1.怀疑Jython没有自动把这些包引进去。查看pythonpath,发现果然没有将第三方的egg包囊括。为了省事儿,将selenium和selenium2library两个模块从各自的egg目录拿出,直接放到了site-package目录下。
2.运行后可以找到库了,但是python带的json包抛了一个错误,仍旧不能运行。
3.但是python的发布包基本上不会有bug,而且,那个产生bug上一行的地方竟然有一行被注释了的老代码,试着还原老代码,注释新代码,旧问题消失。但又产生了新bug。。是在selenium包中。
4.觉得碰到了代码不兼容现象。百度搜索和bing搜索:“jybot selenium” 无任何有意义结果。尝试继续改代码,半小时后放弃,因为产生雪崩效应了。
5.静下心来思索,如果在pybot上运行正确,则说明selenium代码没有大的问题,唯一有可能的是jython引起的区别。可能selenium 用了一些python2.6或者2.7规范中的新语法特性,或者新库,但是目前流行的jython2.5.2版本并不支持。
6.下载了jython2.7的alpha版本安装。
7.运行jybot ,一切OK。
后续思考:
1.问题分析思路还算对路。
2.FQ用google搜索,jython selenium,查阅了StackOverFlow网站上的一些类似问题,终于在一个贴子里找到了跟我类似的问题,并有人给出了同样的解决方式。
3.如果有时间,应该好好看一下jython工作原理。
4.习总书记说:“我们的事业是向世界开放学习的事业。关起门来搞建设不可能成功。我们要坚持对外开放的基本国策不动摇,不封闭、不僵化,打开大门搞建设、办事业。” GFW是不是应该把这些被错误封杀的技术网站都解封了呢?IT工作者都会感谢你们的!