文件读取并将其放入具有多对一关系的循环中 Ruby

Files Read and put it to in a loop with many to one relation Ruby

我试图在读取文本文件后在 watir 方法中分配一个变量。我正在使用以下方法。在循环中,第一个循环工作正常,但在第二个循环中显示错误。

我的代码如下:

file = File.new("states.txt", "r")
contentsArray=[]  # start with an empty array
file.each_line {|line|
 contentsArray.push line
}

browser = Watir::Browser.new
browser.goto 'http://example.com'

for y in 0..2 do
puts state=contentsArray[y]
browser.text_field(:name => 'Keyword').set 'Pediatrics'
browser.text_field(:name => 'Address').set "#{state}"
browser.div(:id => 'uniform-formSearchDoctorBtn').fire_event :click

browser.link(:class => "start-over pull-right gen-button").click
 end

发生以下错误。

`assert_exists': unable to locate element, using {:id=>"uniform-formSearchDoctorBtn", :tag_name=>"div"} (Watir::Exception::UnknownObjectException)

当我用静态数组代替 contentsArray

contentsArray=Array['AL','AK','AZ','AR']

那么代码就可以正常工作了。

是在贾斯汀的帮助下找到了解决方案。 如果你输出 contentsArray,你可能会得到

["AL\n", "AK\n", "AZ\n", "AR"]

注意有一个“\n”,就是换行符。您想通过将 contentsArray.push 行更改为

来去除换行符
contentsArray.push line.strip

有关详细信息,请参阅问题如何用 Ruby 删除回车符 returns? – 贾斯汀·柯