搭建ruby环境遇到的一些问题
ruby环境(Ruby + Sahi +Test::Unit)很早就搭建起来了,但是因为平常找借口忙都没有正式跑脚本。终于下决心要搞自动化,所以觉得先把我们自己的脚本跑起来,但是跑的过程中遇到几个比较烦人的问题。
我们公司采用ruby,使用的是Sahi代理服务器来访问网页,并且Sahi自己也二次开发过,所以部署的时候要替换我们公司自己的二次开发的sahi文件.并且我们公司自动化的统一要求:希望可以做到脚本就是用例,所以我们定义的ruby文件名以及方法,类,变量名都是中文,当然这也足够说明Ruby对语法要求相对宽松.
问题一:输入中文路径名称时显示的都是小方格,并且运行出错时到不到中文对应的路径.
应为当时我使用ruby输入中文时,输出乱码我看网上资料这么解决的
在Netbeans的安装目录中找到etc目录,然后打开这个目录,然后用把此文件在netbeans中打开
在里面的netbeans.conf配置文件中添加一个选项。
即是在 netbeans_default_options这行的末尾加上-J-Dfile.encoding=UTF-8这个参数。
添加后如下netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dfile.encoding=UTF-8"
修改后保存配置文件,然后重新启动Netbeans,发现输出中文一切正常。
修改后输入中文是没有问题的,但是文件所在中文路径以及文件名显示如下

其实只要想ruby中输出中文,在代码中添加
#encoding: utf-8 即可解决输出中文显示乱码问题
如果要想输出中文路径显示正常,把netbeans_default_options这行的末尾加上-J-Dfile.encoding=UTF-8这个参数 删除掉,不用修改此文件,即可显示正常,如下

问题二:
启动sahi,设置代理服务器后,报错信息如截图

因为是win7操作系统,系统默认IE为IE9,但是后面IE升级到IE11,但是运行IE11时,因为我们系统运行时有IE兼容性问题,所以把IE11卸载还原到IE8,但是sahi识别我的IE仍为IE9,导致
上面的报错,具体代码为sahi中*\sahi\htdocs\spr中concat.js文件
Sahi.prototype._isIE9 = function () {return /MSIE 9[.]/.test(this.navigator.userAgent);};
this.navigator.userAgent返回正在使用的客户机发送服务器的 user-agent 头部的值,返回错误,所以无法调用方法,
修改为Sahi.prototype._isIE9 = function () {return false;}; 不论何时返回为错误,调用此方法时
!this._isIE() || this._isIE9() 这个返回为Microsoft Internet Explorer,如果IE升级为IE9 把之前的语句取消注释即可。
ps:如果系统支持IE9的话推荐使用IE9哈,IE9运行速度也要比IE8快,稳定
并且在此次问题解决过程中找到使用Sahi查找控件名称以及ID的快捷方式,具体操作如下

浙公网安备 33010602011771号