#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

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

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

Ruby之Rspec的报错解决的更多相关文章

  1. sphinx :undefined reference to `libiconv' 报错解决办法

    sphinx :undefined reference to `libiconv' 报错解决办法   2013-11-30 21:45:39 安装sphinx时不停报错...郁闷在make时报错,错误 ...

  2. redis运用连接池报错解决

    redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...

  3. linux下启动dbca或netmgr类的图形界面报错解决

    linux下启动dbca或netmgr类的图形界面报错解决    Xlib: connection to ":0.0" refused by server Xlib: No pro ...

  4. CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录

    最近准备学习使用Tez,因此从官网下载了最新的Tez 0.8.3源码,按照安装教程编译使用.平时使用的集群环境是离线的,本打算这一次也进行离线编译,无奈一编译就开始报缺少jar包的错,即使手动下载ja ...

  5. spring boot jpa 使用update 报错解决办法

    在spring boot jpa 中自定义sql,执行update操作报错解决办法: 在@Query(...)上添加 @Modifying@Transactional注解

  6. eclipse创建的maven项目,pom.xml文件报错解决方法

    [错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --> ...

  7. 搭建oracle linux虚拟机报错解决

    sysctl -P 报错解决办法问题症状修改 linux 内核文件 #vi /etc/sysctl.conf后执行sysctl  -P 报错error: "net.bridge.bridge ...

  8. Aasible中cryptography兼容性报错解决办法

    Aasible中cryptography兼容性报错解决办法 1 Ansible中使用ansible --version查看版本,报错信息如下: ERROR! Unexpected Exception, ...

  9. MyEclipse Server view报错解决方法

    MyEclipse Server view报错解决方法 方法/步骤     启动MyEclipse,弹出一个框,报错. ---------------------------------------- ...

随机推荐

  1. 【bzoj4448】[Scoi2015]情报传递 主席树

    题目描述 奈特公司是一个巨大的情报公司,它有着庞大的情报网络.情报网络中共有n名情报员.每名情报员口J-能有若T名(可能没有)下线,除1名大头日外其余n-1名情报员有且仅有1名上线.奈特公司纪律森严, ...

  2. hihoCoder 1467 2-SAT·hihoCoder音乐节(2-SAT模版)

    #1467 : 2-SAT·hihoCoder音乐节 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 hihoCoder音乐节由hihoCoder赞助商大力主办,邀请了众 ...

  3. ReactJS 学习路线

    Node.js: 推荐采用nvm的方式安装,nvm(Node Version Manager)用于Node的版本管理,方便不同版本的Node之间的切换 安装npm,npm(Node Package M ...

  4. PE415

    那个条件其实是个结论吧..除非全部共线就是存在一条线只经过两点.. 那就容斥一发,然后变成个传统数论题,xjb杜教筛就好了.. (最终那个式子不太好看的..)

  5. SQLServer (2005/2008) 日志清理方法

    --数据库日志名称查询 USE DBNAME GO SELECT file_id, name,* FROM sys.database_files; GO------------------------ ...

  6. nodejs + express 入门之 hello world

    使用nodejs 开发web项目时原生的api开发比较困难.组合express后就比较容易了. 1.安装 express:       (express地址: http://www.expressjs ...

  7. border:none;和border:0;的区别

    一.是理论上的性能差异 [border:0;]把border设为“0”像素虽然在页面上看不见,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已 ...

  8. AC日记——石子归并 51nod 1021

    石子归并 思路: 经典动态规划——归并类问题: 我们把状态划为n个,即1-n的n个长度为n个状态: 那么,每个长度为i的状态都可以由i-1个长度为i-1的状态推出: 所以,dp转移方程: dp[i][ ...

  9. Codeforces Round #466 (Div. 2) B. Our Tanya is Crying Out Loud[将n变为1,有两种方式,求最小花费/贪心]

    B. Our Tanya is Crying Out Loud time limit per test 1 second memory limit per test 256 megabytes inp ...

  10. Codeforces Round #454 C. Shockers【模拟/hash】

    C. Shockers time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...