Ruby之Rspec的报错解决

#enconding:utf-8

require 'selenium-webdriver'
require 'rspec'

describe "baidu main page" do
	it "should have 百度一下 button on the baidu main page"do
		dr = Selenium::WebDriver.for:ie
		url = 'www.baidu.com'
		dr.get url
		dr.find_element(:id,'su').should be_displayed
	end #it
end #describe

错误代码如上所示,首先使用utf-8编码,如下

#enconding:utf-8

在rspec中执行会出现中文无法解释的错误


显然,当前utf-8还不支持中文的正常执行。将utf-8改为gbk即可成功执行。这是第一个遇到的问题。

第二个问题就是断言。

dr.find_element(:id,'su').should be_displayed

should方法的断言似乎已经过时了。在执行rspec -f doc的时候会出现语法错误的提示,要求修改断言的语法


将断言的代码修改为下面的表达:

expect(dr.find_element(:id,'su')).to be_displayed
 
 
</pre><pre>

断言的新语法格式参见下所示:expect(dr.find_element(:id,'su')).to be_displayed
对比之前的should语法: dr.find_element(:id,'su').should be_displayed

正常执行的代码如下所示:

#encoding:gbk
#使用GBK才能正常显示,不报错,使用UTF-8会报错

require 'selenium-webdriver'
require 'rspec'

describe "baidu main page" do
	it "should have 百度一下 button on the baidu main page"do
		dr = Selenium::WebDriver.for:ie
		url = 'www.baidu.com'
		dr.get url
		#~ dr.find_element(:id,'su').should be_displayed
		expect(dr.find_element(:id,'su')).to be_displayed#新的语法
	end #it
end #describe


将编码和断言的方法改为上述表达式即可成功执行。执行结果如下图所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值