#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
将编码和断言的方法改为上述表达式即可成功执行。执行结果如下图所示: