2015-09-05 23 views
0

我需要迭代div的集合,單擊每個div,然後單擊回div並再次執行。無法使用watir-webdriver迭代div的集合

這是鏈接到網站http://services.tvzavr.ru/alliance/index.html 在這個網站上,我需要打開'Фильмы'部分,然後迭代divs集合。含義點擊每個項目,然後打開頁面,然後點擊返回,然後再次爲集合中的所有元素執行此操作。

這是鏈接到該網站http://services.tvzavr.ru/alliance/index.html

在我一步,我這樣做

@browser.divs(:class => 'carousel-lst-itm nav-itm').each do |itm| itm.when_present.click @browser.div(:class => 'ftr-nav-return btn btn-blue nav- itm').when_present.click sleep 1 end

但它僅適用於第一個項目集合中,然後將其與超時錯誤

停止

在90秒後超時,等待{:element =>#}成爲存在(Watir :: Wait :: TimeoutError)

我期望它遍歷div的集合。

回答

0

我找到答案在這裏https://jkotests.wordpress.com/2014/10/22/unknownobjectexception-with-element-not-found-in-the-cache-message/

@browser.divs(:class => 'carousel-lst-itm-cover').each_with_index do |_, i| 
    @browser.div(:class => 'carousel-lst-itm-cover', index: i).when_present.click 
    sleep 1 
    if @browser.div(:class => 'video-itm-price').present? 
     puts @browser.div(:class => 'video-itm-price').text 
     break 
    else 
     @browser.i(:class => 'i-return').when_present.click 
     break if i == 10 
    end 
    sleep 1 
    end