Основная проблема, с которой я сталкиваюсь, это получение данных из таблиц, но любые другие общие советы тоже приветствуются В таблицах, с которыми я имею дело, примерно 25 столбцов и различное количество строк (от 5 до 50).
В настоящее время я беру таблицу и преобразовываю ее в массив:
require "watir-webdriver"
b = Watir::Browser.new :chrome
b.goto "http://someurl"
# The following operation takes way too long
table = b.table(:index, 1).to_a
# The rest is fast enough
table.each do |row|
# Code for pulling data from about 15 of the columns goes here
# ...
end
b.close
Операция table = b.table(:index, 5).to_a
занимает больше минуты, когда в таблице 20 строк. Похоже, что очень быстро можно поместить ячейки таблицы 20х25 в массив. Мне нужно сделать это для более чем 80 таблиц, так что на это уходит 1-2 часа. Почему это занимает так много времени и как я могу улучшить скорость?
Я пробовал перебирать строки таблицы без предварительного преобразования в массив, но производительности не было:
b.table(:index, 1).rows.each do |row|
# ...
Аналогичные результаты при использовании Windows 7 и Ubuntu. Я также попробовал Firefox вместо Chrome без заметной разницы.