不能使用watir-webdriver迭代div的集合

时间:2015-09-05 08:31:57

标签: watir-webdriver

我需要迭代div的集合,单击每个div,然后单击后退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的集合。

1 个答案:

答案 0 :(得分: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