我想用phantomjs抓取这个网页:
并且,对于每种颜色,获取可用尺寸。我认为这需要.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执行?
答案 0 :(得分:0)
这个bug可能有帮助吗?我遇到了类似的问题,我无法通过执行jquery来单击链接。