Estoy tratando de devolver múltiples imágenes PNG para cada mouse_click. Lo configuré para que pueda obtener múltiples coordenadas de un clic y luego almacenar esas coordenadas en una tabla. Luego, repite las claves/valores de la tabla para obtener cada clic. Sin embargo, cuando ejecuto la función completa, solo produce la primera página producida por splash.args.url y no incluye los clics dentro del bucle. ¿Cómo puedo integrar los clics dentro del ciclo de manera efectiva para producir múltiples imágenes?
treat = require("treat") function page_info(splash, url) local ok, msg = splash:go(url) if not ok then return {ok=false, reason=msg} end local res = { html=splash:html(), title=splash:evaljs('document.title'), image=splash:png(), ok=true, } return res end function main(splash) assert(splash:go(splash.args.url)) local get_dimensions = splash:jsfunc([[ function () { var rect = document.querySelector('checkbox[number="1"]').getClientRects()[0]; var rect2 = document.querySelector('checkbox[number="2"]').getClientRects()[0]; return {"x": rect.left, "y": rect.top, "x2": rect2.left, "y2": rect2.top} } ]]) splash:set_viewport_full() splash:wait(0.1) local dimensions = get_dimensions() -- FIXME: button must be inside a viewport local stuff = {[dimensions.x]=dimensions.y, [dimensions.x2]=dimensions.y2} local result = treat.as_array({}) local a = 1 for keys, values in ipairs(stuff) do while a < 3 do splash:mouse_click(keys, values) a = a+1 result[a] = page_info(splash, url) end end -- Wait split second to allow event to propagate. splash:wait(0.1) return result endPuedo ejecutar cada clic sucesivamente, sin embargo, ¿cómo puedo almacenar los resultados de cada clic y devolverlo?
Como obtengo una matriz vacía:
Respuesta de salpicadura: Matriz[0]