0

ページ上のすべての li 要素を検索します。それらはすべて、herf perporties に一意の ID を持っています。そのうちのいくつかは非表示になっており、ページの [詳細] ボタンをクリックすると、それらが表示されます。コードは次のとおりです。

def open_template id=0
      sleep 1
      #try to get all the li elements that has class named like "test..." and put them into a list
      box_list=browser.lis.find_all { |div| div.class_name =~ /^test/ }   
      sleep 2
      #go though the list
      box_list.each do |each|
         str=each.a.attribute_value("href")
         #the tid number of the element should match to id
         if /\?tid=\d+/.match(str)[0].gsub!("?tid=", "").to_i==id
            # if the element is hidden, should click the "more" button and get into another page
            if each.attribute_value("style")=="display: none;"
              each.parent.parent.div(class: "title_me_h").a(class: "more").click
              sleep 2
              # begin the same thing on the new page
              open_template(id)
            end
            begin
              #if the element matchs and isn't hidden, do a click          
              each.a(class: "li_box_cj").wait_until_present 
              each.a(class: "li_box_cj").click
            rescue Exception => e
              puts "ERROR: #{e.message}"            
            end
            break
         end
      end
    end

非表示のli要素を見つけようとしたとき、コードを実行した後、キャッシュエラーで要素が見つかりませんでしたが、最後のアクション「クリック」が実行されました。わからないのですが、どなたかヒントをいただけないでしょうか?stackoverflow に関するすべての関連する質問を読みましたが、回答が得られませんでした。よろしくお願いします。

4

1 に答える 1