このWebページをphantomjsでスクレイピングしたい:
そして、色ごとに利用可能なサイズを取得します。これには.select()
、各色を ing し、少し待って、どのサイズがclass=disabledOption
. 現在、次のようなものがあります。
get_colors_for_size = (index, color_elem, item_id) ->
$(color_elem).select()
setTimeout(->
size_selector = "#sizeList"+item_id+" > li"
$(size_selector).each (index, size_elem) ->
size_name = size_elem.title
if not $(size_elem).hasClass("disabledOption")
console.log($(color_elem).title + " " + size_name)
#sizes_for_color.push(size_name)
, 500)
$(color_selector).each (index, color_elem) ->
color_name = color_elem.title
console.log(color_name)
interval = 1000*index
console.log(interval)
setTimeout(->
get_colors_for_size(index, color_elem, item_id)
, interval)
, item_id, get_colors_for_size
ただし、次の 2 つの問題があります。
1) 各色に対して同じサイズのオプションが返されるため、色要素が適切に選択されているとは思いません (click()
それらとそのすべての子も試しました)。レースコンディションから。
ブロッキング ワークフローを実行する別の方法はありますか。たとえば、この js の実行を一時停止して、他の js が実行されるのを待ちますか?