Мне нужна помощь в итерации таблицы, состоящей из n строк.
Имя таблицы: Table = $ b.table (: id, / grid /)
1 2 3 4 5
2 100 2000
3 150 3000 text dropdown
4 200 4000
5 250 5000 text dropdown
n 300 6000
Однако, я получил следующее сообщение об ошибке, когда использовал следующий код
browser.table(:id, /grid/).rows.each do |row|
row[5].select("Value from the dropdown") if row[4].text.exists?
end
Error
C:/Watir Scripts/Project/Debit.rb:58:in `block in report': undefined method `exists?' for "Account Number":String (NoMethodError)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.2.3/lib/watir-webdriver/element_collection.rb:21:in `each'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.2.3/lib/watir-webdriver/element_collection.rb:21:in `each'
from C:/Watir Scripts/Project/Debit.rb:57:in `report'
from driver.rb:36:in `run'
from driver.rb:42:in `<main>'
Поэтому я попытался настроить скрипт и написал, как показано ниже.
browser.table(:id, /Grid/).rows.each do |row|
if row[4].text!= ""
row[5].select("Value from the dropdown")
end
Тогда я получил следующее сообщение об ошибке.
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.2.3/lib/watir-webdriver/container.rb:36:in `extract_selector': expected Hash or (:how, 'what'), got ["Exclude: Duplicate Account"] (ArgumentError)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.2.3/lib/watir-webdriver/elements/generated.rb:2163:in `select'
from C:/Watir Scripts/Project/Credit.rb:53:in `block in report'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.2.3/lib/watir-webdriver/element_collection.rb:21:in `each'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.2.3/lib/watir-webdriver/element_collection.rb:21:in `each'
from C:/Watir Scripts/Project/Debit.rb:51:in `report'
from driver.rb:36:in `run'
from driver.rb:42:in `<main>'
Так что я думаю, что нам нужно использовать (как, что) выражения, можете ли вы помочь мне, как использовать эти выражения в каждой команде?