watir尝试匹配版权声明时出错

时间:2012-05-23 04:08:17

标签: ruby testing rspec watir watir-webdriver

您好我正在使用带有rspec的watir并遇到以下代码块的问题:

我无法理解我做错了什么。我得到的确切错误是“语法错误,意外的$ end,期待keyword_end       @ b.text.include? “方舟©1”

describe "Copyright statement" do 
   it "should exist" do 
    @b.text.include? "Ark © 1"
   end
end

任何帮助将不胜感激。感谢。

3 个答案:

答案 0 :(得分:1)

我认为你的缩进不在第一端需要另一个空间来排队。

describe "Copyright statement" do 
   it "should exist" do 
    @b.text.include? "Ark © 1"
   end 
end

一旦你纠正了这个,你应该能够看到@ChuckvanderLinden和我认为是真正的问题 - 你缺少并结束了,但是没有看到文件的其余部分我们无法确定。

我确实从Dave Thomas那里得到了这个提示,

http://pragdave.blogs.pragprog.com/pragdave/2008/12/ruby-19-can-check-your-indentation.html

如果使用-w标志运行该文件,它将使您更好地了解问题以及代码中的确切位置。

ruby -w samplefile.rb

这将为您提供类似于以下内容的输出:

t.rb:5: warning: mismatched indentations at 'end' with 'if' at 3
t.rb:9: warning: mismatched indentations at 'end' with 'def' at 2
t.rb:10: syntax error, unexpected $end, expecting keyword_end

更容易找到错误,

答案 1 :(得分:1)

@SteveRobillard已经在他的回复中解决了缺失的结束错误消息,但是你在如何尝试在那里使用rspec还有另外一个大问题。问题是你并没有真正对.include的结果做任何事情?方法,因为没有。应该有。您的代码正在执行该方法,但只是有效地抛出返回到位桶的“true”或“false”。该测试永远不会失败,因为您缺少任何类型的验证。我认为这条线需要更接近

describe "Copyright statement" do 
   it "should exist" do 
     @b.text.should include "Ark © 1"
   end 
end     

纠正可能无法解决您遗漏的最终问题,但如果没有这样的话,您的“测试”实际上并没有测试任何内容。

此外,如果是我,我不仅希望看到版权在html的某个地方,而且在特定的地方,例如页脚,通常在某种容器中,例如div。如果该div的id为'footer',那么代码的那部分将是这样的

it "should be found within the footer" do
  @browser.div(:id => 'footer').text.should include 'copyright © Yoyodyne 1984'
end

查看与Watir一起使用的rspec的好方法是查看watir本身的rspec文件,例如div元素的规范以及它应该做的所有测试都在https://github.com/watir/watirspec/blob/master/div_spec.rb

答案 2 :(得分:1)

我在网上找到了一个解决方案,同时搜索错误“无效的多字节字符(US-ASCII)”

将此行添加到顶部有助于版权声明!

# encoding: UTF-8

它只是文件顶部的一个简单注释,但它解决了版权特征和Rspec / Ruby 1.9的问题。

感谢大家的所有帮助和支持。我真的很感激它!