0

複数の Web ページにアクセスしてお気に入りに追加しようとするコードがあります。私が理解しているように、visit を使用すると、カピバラは残りのコマンドを続行できません。以下のコードを確認してください。

sub_menus = all('li a')
for i in 0..(sub_menus.length-1)
  if (sub_menus[i]['href'] == "http://intranet/Intranet/#") || (sub_menus[i]['href'] !~ /http:\/\/intranet(.*)/)
    next
  else
    visit sub_menus[i]['href']
    $links.push(sub_menus[i]['href'])
    find(:xpath , '//*[@id="AddFavorites_UC1_AddFavoriteButton"]').click
  end
  puts "hgfhf"
end
  p $links
  p $links.length

このコードを実行すると、作業にアクセスしてクリックするのは 1 回だけですが、for ループは 2 回目は実行されません。

助言がありますか ?

4

1 に答える 1

0

別のページ要素ロケーターに移動すると、無効になり、使用できなくなります。sub_menusしたがって、別のページでは使用できません。

したがって、次のようなものを使用する必要があります。

links = all('li a').map { |el| el[:href] }
$links = []
links.each do |link|
  unless link !~ /http:\/\/intranet(.*)/
    visit link
    $links << link
  end
end
于 2013-02-27T08:40:15.343 に答える