0

我想用 phantomjs 抓取这个网页:

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

并且,对于每种颜色,获取可用的尺寸。我认为这需要.select()检查每种颜色,稍等片刻,然后检查哪些尺寸有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 

但是,有两个问题:

1)我认为颜色元素选择不正确(我也尝试过click()他们和他们所有的孩子),因为每种颜色都返回相同的尺寸选项 2)这真的很难看,可能会受到影响从比赛条件。

是否有另一种执行阻塞工作流的方法,例如暂停此 js 执行以等待其他 js 执行?

4

1 回答 1

0

这个错误可能有帮助吗?我遇到了类似的问题,我无法通过执行 jquery 来单击链接。

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

于 2014-05-29T05:35:42.040 回答