Я обнаружил, что watir-webdriver очень медленно находит элемент с помощью регулярных выражений на очень большой странице, это по крайней мере верно для FF 8.0.1 для меня.Пример на странице результатов поиска рейсов (содержит около 50 результатов поиска, каждый из которых является хорошей частью структуры html):
1.
irb(main):057:0>
t=Time.now;browser.div({:id=>”flightModule40”}).exists?;puts
”#{Time.now-t}” #=> 0.202
2.
irb(main):056:0>
t=Time.now;browser.div({:id=>/flightModule40/}).exists?;puts
”#{Time.now-t}” #=> 131.046
3.
irb(main):058:0>
t=Time.now;browser.div({:id=>/flightModule/, :index=>40}).exists?;puts
”#{Time.now-t}” #=>—is working for 30 minutes for me already…
Все вышеперечисленное работает с приемлемой скоростью в watir 1.6.5 и watir 2.0.4 в IE8.
Для сравнения, здесь иногда используютсяwatir-webdriver для IE8 и FF3.6
watir-webdriver для IE8:
- => 0.172017
- & 3. => Тайм-аут :: Ошибка: выполнениеистек срок действия C: /ruby/1.8.7-p334/lib/ruby/1.8/timeout.rb: 64: в `rbuf_fill '
watir-webdriver с FF3.6:
- => 0,055005,
- => 80,095009,
- => 101,734173.
Действия по переходу на тестируемую страницу - www.expedia.co.uk/Flights, поиск в оба конца рейсов и переход на вкладку «Обратные рейсы» на странице результатов.
Есть ли какие-либо понятия, почему это происходит?