由于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>
那不可能?
答案 0 :(得分:0)
当你执行source = @driver.page_source
所以现在source
在字符串(String对象)中有页面源。
find_elements
适用于Selenium::WebDriver
个对象。那是你的@driver
(我猜)
所以,你必须做@driver.find_elements(...)
并且它会起作用。