欢迎来到天天文库
浏览记录
ID:6472484
大小:33.50 KB
页数:3页
时间:2018-01-15
《ruby脚本编写的几个问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、ruby脚本编写的几个问题上一篇/下一篇 2010-06-1813:12:07/个人分类:Watir查看(47)/评论(0)/评分(0/0)问题一:ruby-oic8gem包版本问题。现象:使用ruby一键安装包,环境安装完毕,开始写ruby脚本,在脚本中调用操作数据库相关语句,使用ruby-oci8gem包。语句:dbh=DBI.connect('DBI:OCI8:database','name','password')调试运行后,报错:“Unabletoloaddriver‘oci8’(DBI:Interfac
2、eError)”解决方法:将ruby-oci8gem包版本降低由1.0.4降为1.0.31. 卸载gem包gemunstillruby-oci82. 安装1.0.3版本gem包geminstallruby-oci8-1.0.3-XXXX问题二:虚拟机无法登录CRM的问题现象:登录CRM系统后,页面又自动跳转到淘宝的登录页面原因:查看虚拟机上Internet选项—局域网设置—代理服务器。浏览器设置了使用代理服务器,导致无法访问内网。解决方法:方法1.将虚拟机设置为:不使用代理服务器方法2.将后台C
3、RM网址输入到不需要代理服务器列表(如图)问题三:虚拟机中跑脚本时无法使用get_frame()函数的问题现象:虚拟机中跑脚本遇到get_frame()语句,提示无法找到元素。解决方法:在internet选项—安全—受信任的站点设置中将测试页面网址加入到受信任站点。问题四:iframe框跨域定位问题现象:在网页中存在一个跨域的iframe元素,只能找到网址信息,无id、class等属性,且Frame框的子节点信息无法展开。参考地址:http://app.daily.taobao.net/subsc/pay_conf
4、irm.htm?subsc_id=9397&tadget_id=78132 分析:iframe框元素在本页中无法抓取,将frame框对应的网址取出,然后在新窗口中打开。解决方法:通过定位iframe框,并获取iframe框src属性,将网址信息提取。element=@ie.locate_tagged_element("iframe","src",/pay.daily.taobao.net/)url=element.getAttribute("src")@ie.goto(url)问题五:TD事务如何调用问题现象:在
5、脚本实现中部分脚本需要清楚缓存操作。若从页面上去实现调用TD事务的方法,会出现几个问题:1.成本高,需要多写页面的脚本。2.不稳定,若TD页面打开出现问题,将会使事务调用失败。解决方法:TD银行考虑周到,已经为ruby脚本预留了调用接口。脚本中可以直接调用接口函数。在commoninteraction.rb中封装了一个函数,用来调用TD银行的接口。invoke_tdbank(service,action,*params)。举例:invoke_tdbank("TdUser","Cleancache","test10
6、1")#清楚用户缓存具体方法参考:《最新ruby自动化脚本调用TD银行接口.docx》问题六:数据库字段值与页面取值对比问题现象:页面上取值和数据库字段取值后打印,显示相同的值,但是在脚本中比较两者的值时却显示为不相等。分析:脚本中比较两者的值时,需要有相同的字符类型。char型和int型两者内容虽相同,但是类型不同,所以比较时,结果为不相等。解决方法:将页面取值和数据库取值转化为相同类型。例如: #以下部分校验页面Appke
7、y显示是否与数据库一致 dbh=DBI.connect('DBI:OCI8:Database','XXXX','XXXX') rs=dbh.execute("selectappkeyfromtablewhereisv_id='#{USER_ID1}'andtitle='#{APPNAME}'") appkey_db=rs.fetch[0] appkey_db=appkey_db.to_i #获得数据库Appkey的值 dbh.commit
8、dbh.disconnect @ie=@ie.div(:class,"boxapp-info-box") @ie=@ie.li(:index,4) appkey_page=@ie.span(:index,1).text.to_i #获得页面Appkey的值
此文档下载收益归作者所有