Я пытаюсь назначить переменную в методе 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']
Тогда код работает нормально.
Да Получил решение с помощью Джастина.
если вы выводите contentArray, вы, скорее всего, получите
["AL\n", "AK\n", "AZ\n", "AR"]
Обратите внимание, что есть «\ n», который является символом разрыва строки. Вы хотите зачеркнуть разрыв строки, изменив строку contentsArray.push на
contentsArray.push line.strip
Для получения дополнительной информации см. Вопрос Как удалить возврат каретки с помощью Ruby? — Джастин Ко
Других решений пока нет …