我遇到了与水豚/黄瓜/硒/ rspec最奇怪的问题。
我无法通过文本与capybara匹配任何选择器。一个例子是:
page.should have_selector('h2', :text=>'Thank you')
页面是一个平面的HTML,标记是:
<html>
<body>
<h2>Thank you</h2>
</body>
</html>
所以我尝试输出那个h2标签的文本,如果我做错了。
puts "text: "+page.find('h2').text
令我惊讶的是,这就是终端所说的:
output: text: y
我开始玩文字,然后我将页面的标记更改为:
<html>
<body>
<h2>abcdefghijklmnopqrstuvwxyz</h2>
</body>
</html>
现在终端给了我:
puts "text: "+page.find('h2').text
output: text: vwxyz
h2具有什么文本并不重要,它只接收字符vwxyz,空格和斜杠(/)!它完全忽略了所有其他角色,包括大写字母VWXYZ。因此,我的所有断言都失败了。
这是我的宝石版:
$ gem --version
1.8.25
这是宝石列表:
builder (3.1.4)
capybara (2.0.2)
childprocess (0.3.6)
commonwatir (4.0.0)
cucumber (1.2.1)
cucumber-rails (1.3.0)
diff-lcs (1.2.0, 1.1.3)
ffi (1.3.1)
gherkin (2.11.5)
jammit (0.6.5)
json (1.7.6)
mime-types (1.19)
multi_json (1.5.0)
nokogiri (1.5.6)
open4 (1.3.0)
Platform (0.4.0)
POpen4 (0.1.4)
rack (1.5.0)
rack-test (0.6.2)
rspec (2.12.0)
rspec-core (2.12.2)
rspec-expectations (2.12.1)
rspec-mocks (2.12.2)
rubygems-update (1.8.25)
rubyzip (0.9.9)
selenium-webdriver (2.29.0)
spreewald (0.3.10)
watir (4.0.2)
watir-webdriver (0.6.2)
websocket (1.0.6)
xpath (1.0.0)
yui-compressor (0.9.6)
任何帮助表示赞赏!
答案 0 :(得分:0)
经过多次打击之后,我意识到我的Ruby版本是1.8.7。这是一个很长的镜头,但我安装了1.9,它现在有效。我不知道Ruby 1.8.7和我正在使用的gem版本是否存在不兼容问题,或者安装是否错误,但是这有用。
我对每个遇到与黄瓜/水豚类似怪异的人的建议是确保所有宝石和相关软件都是最新的。