RSpec:为什么我有Methoderror:未定义的方法但是这个怎么没有?

时间:2017-10-26 14:21:30

标签: selenium rspec

由于the answer for my last question here我们认为this可以帮助我编写一个使用RSpec循环遍历一系列元素的测试。

但我真的不明白/了解为什么以下代码无法在我的规范中使用

鉴于我在测试中写道

source = @driver.page_source
puts source
row = source.find_elements(:xpath => "//a[contains(text(),'Details')]").length
puts row

然后它会遇到此错误

Failure/Error: row = source.find_elements(:xpath => "//a[contains(text(),'Details')]").length

NoMethodError:
undefined method `find_elements' for #<String:0x00000003fcccd8>

那不可能?

1 个答案:

答案 0 :(得分:0)

当你执行source = @driver.page_source所以现在source在字符串(String对象)中有页面源。

find_elements适用于Selenium::WebDriver个对象。那是你的@driver(我猜)

所以,你必须做@driver.find_elements(...)并且它会起作用。