標籤:
#enconding:utf-8require 'selenium-webdriver'require 'rspec'describe "baidu main page" doit "should have 百度一下 button on the baidu main page"dodr = Selenium::WebDriver.for:ieurl = 'www.baidu.com'dr.get urldr.find_element(:id,'su').should be_displayedend #itend #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" doit "should have 百度一下 button on the baidu main page"dodr = Selenium::WebDriver.for:ieurl = 'www.baidu.com'dr.get url#~ dr.find_element(:id,'su').should be_displayedexpect(dr.find_element(:id,'su')).to be_displayed#新的文法end #itend #describe
將編碼和斷言的方法改為上述運算式就可以成功運行。
運行結果例如以所看到的:
Ruby之Rspec的報錯解決