首页 > 代码库 > watir 控件传中文字段时遇到的问题以及解决方法

watir 控件传中文字段时遇到的问题以及解决方法

在给watir控件传递中文参数时遇到几个问题,现在解决方法如下

1、ie.text_field(:name=>"UserName").set("中文字符")

时报错,报错如下

Invalid char ‘\243‘ in expression
Invalid char ‘\254‘ in expression
Invalid char ‘\273‘ in expression

 

解决方案:代码前加上编码格式 #encoding: utf-8

2 ie.text_field(:name=>"UserName").set("中文字符") 页面显示乱码,如下图显示

解决方案在网上有几种,现总结如下

1、选中某个项目,点击 “右键”,点击菜单中的“属性”,

进入属 性页面,设置编码为GB2312

2、修改 D:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.5\lib\watir\win32ole.rb 文件中的下面代码

WIN32OLE.codepage = WIN32OLE::CP_UTF8

修 改为

WIN32OLE.codepage =  WIN32OLE::CP_ACP

3、ie.text_field(:name=>"tbUserName").set(“中文字符”)

换为方法

ie.text_field(:name=>"tbUserName").value = http://www.mamicode.com/“中文字符”

但试过以上三种方法时 都无效,最后在网上看到一种解决方案:

str = "中文字符串"

ie.text_field(:name, "q").set("#{Iconv.conv(‘utf-8‘, str.encoding.name, str)}") # q is the name of the search field

但运行后发现没有找到encoding 方法

最终改为如下方法,终于在页面上显示正常

@ie.text_field(:name, "operName").set("#{Iconv.new(‘utf-8‘, ‘gbk‘).iconv(str)}") 

学习watir 的道路感觉比之前曲折很多,看来以后还得继续努力的!!!

 

watir 控件传中文字段时遇到的问题以及解决方法