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