• 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


    将编码和断言的方法改为上述表达式就可以成功运行。

    运行结果例如以下图所看到的:


  • 相关阅读:
    2013年noip第三题货车运输truck(树链剖分LCA+最大生成树)
    hdu1754线段树入门
    《Spring1之第六次站立会议》
    《Spring1之第五次站立会议》
    《Spring1之第四次站立会议》
    《Spring1之第三次站立会议》
    《 找水王》
    《 Spring1之第二次站立会议(重发)》
    《Spring1之 第一次站立会议(重发)》
    《 第二次站立会议》
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5305978.html
Copyright © 2020-2023  润新知