0

このWebページをphantomjsでスクレイピングしたい:

http://www1.macys.com/shop/product/john-ashford-shirt-long-sleeve-solid-rugby-polo?ID=875571&CategoryID=20640&LinkType=PDPZ1

そして、色ごとに利用可能なサイズを取得します。これには.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 が実行されるのを待ちますか?

4

1 に答える 1

0

このバグは役立つでしょうか?jqueryを実行してリンクをクリックできないという同様の問題が発生しました。

https://github.com/detro/ghostdriver/issues/355#

于 2014-05-29T05:35:42.040 に答える