Phantomjs没有正确点击元素

时间:2013-10-14 19:34:02

标签: javascript coffeescript phantomjs

我想用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执行?

1 个答案:

答案 0 :(得分:0)

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

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