"Неопределенный метод` each 'для: ole_object: Symbol - PullRequest
1 голос
/ 09 ноября 2011

Сегодня я установил Ruby 1.9.2p180 (2011-02-18) [i386-mingw32] и у меня возникла следующая проблема.Работал нормально с Ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32].Я искал во многих форумах и до сих пор не мог найти душу.Пожалуйста помоги!

Я получаю ошибку Undefined method 'each' for :ole_object:Symbol (NoMethodError) при нажатии кнопки с использованием приведенного ниже кода.

ie.frame(:id,"body").table(:id,"recordListButton_UserList_ctl00")[1][2].click_no_wait 

Это нормально работало в ruby ​​1.8.6

Ошибка:

C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/locator.rb:11:in `normalize_specifiers!': undefined method `each' 
for :ole_object:Symbol (NoMethodError) 

from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/locator.rb:43:in `set_specifier' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/container.rb:109:in `tagged_element_locator' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/element.rb:36:in `locate' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/table.rb:249:in `locate' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/element.rb:75:in `assert_exists' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/table.rb:285:in `[]' 
from //coldstorage/intranet/QA/Automation/Clickability for Blank DB- New Look and Feel/Admin Tab/Click_User_page_CC.rb:75:in `<main>' 

>Exit code: 0 

Примечание: когда я пытаюсь сделать

ie.frame(:id,"body").table(:id,"recordListButton_UserList_ctl00").click_no_wait

в Watir 1.9.2, он работает.Я не понимаю, почему

table(:id,"recordListButton_UserList_ctl00")[1][2] 

вызывает ошибку.И ошибка жалуется на метод 'each', который я нигде не использую в своем скрипте.Пожалуйста, помогите!

У меня на машине установлены следующие гемы:

activesupport (2.3.9) 
builder (3.0.0) 
commonwatir (2.0.4, 2.0.3, 1.7.1, 1.6.7) 
ffi (1.0.9 x86-mingw32) 
firewatir (1.7.1, 1.6.7) 
hoe (2.12.3) 
minitest (1.6.0) 
nokogiri (1.5.0 x86-mingw32) 
rake (0.8.7) 
rautomation (0.6.3) 
rdoc (2.5.8) 
s4t-utils (1.0.4) 
user-choices (1.1.6.1) 
watir (2.0.4) 
win32-api (1.4.8 x86-mingw32) 
win32-process (0.6.5) 
windows-api (0.4.0) 
windows-pr (1.2.1) 
xml-simple (1.1.1) 

Ответы [ 2 ]

0 голосов
/ 10 ноября 2011

Для меня это звучит как билет WTR-459 (click_no_wait не работает с кадрами). Но, насколько я вижу, этот билет исправлен.

0 голосов
/ 10 ноября 2011

Ошибка, которую я вижу выше, указывает на то, что вы обновили не только Ruby, но и Watir, поскольку я вижу 2.0.4 как часть пути к файлам watir.

Одним из основных изменений между watir 1.x и watir 2.x является переход от индексации на основе нуля к нулю.

Вы пересмотрели значения индекса в своем коде или добавили следующее в началоваши сценарии использовать старые 1 на основе индексации?

require "watir"; Watir.options[:zero_based_indexing] = false

Возможно, ошибка связана с попыткой отправить watir, который присматривает за элементом, которого просто нет ... например, третья ячейка в строке таблицы с двумя столбцами.

Если ссылка, по которой вы щелкаете, является первой в таблице, это может объяснить, почему просто использовать .link (то же самое, что и .link(:index => 0)) работает правильно, но пытается обратиться к элементу по строкеи клетка нет.

...