local err local json = require("json") -- Parse the JSON string local obj, err = json.decode(json_payload) log("Cuit:" .. obj["cuit"]) cuit = obj["cuit"] password = obj["password"] log("Iniciando login AFIP") err = navigate("https://auth.afip.gob.ar/contribuyente_/login.xhtml") if err then message = "Error navigating to login page: " .. err log(message) error(message) end err = waitVisibleByQuerySelector("input[name='F1:username']") if err then message = "Error waiting for username field: " .. err log(message) error(message) end err = setTextFieldByQuerySelector("input[name='F1:username']", "") if err then message = "Error setting username field: " .. err log(message) error(message) end waitSecs(2) err = inputTextFieldByQuerySelector("input[name='F1:username']", cuit) if err then message = "Error inputting username: " .. err log(message) error(message) end waitSecs(2) err = clickElementByQuerySelector("input[id=\"F1:btnSiguiente\"]") if err then message = "Error clicking next button: " .. err log(message) error(message) end local error_on_page js_script = [[ const errorSpan = document.querySelector('span#F1\\:msg'); errorSpan ? errorSpan.textContent : ''; ]] error_on_page, err = evaluateJsWithStringOutput(js_script) if err then message = "Error evaluating JS: " .. err log(message) error(message) end if error_on_page ~= "" then message = "Error on page: " .. error_on_page log(message) error(message) return end waitSecs(2) err = waitVisibleByQuerySelector("input[name='F1:password']") if err then message = "Error waiting for password field: " .. err log(message) error(message) end err = inputTextFieldByQuerySelector("input[name='F1:password']", password) if err then message = "Error inputting password: " .. err log(message) error(message) end err = clickElementByQuerySelector("input[id=\"F1:btnIngresar\"]") if err then message = "Error clicking login button: " .. err log(message) error(message) end waitSecs(2) error_on_page, err = evaluateJsWithStringOutput(js_script) if err then message = "Error evaluating JS: " .. err log(message) error(message) end if error_on_page ~= "" then message = "Error on page: " .. error_on_page log(message) error(message) end current_url, err = getCurrentUrl() if err then message = "Error getting current URL: " .. err log(message) error(message) end if string.match(current_url, "^https://auth%.afip%.gob%.ar/contribuyente_/login%.xhtml") then message = "Unexpected URL after login: " .. current_url log(message) error(message) end log("Login successful!") current_url, err = getCurrentUrl() if err then message = "Error getting current URL: " .. err log(message) error(message) end if string.match(current_url, "^https://auth%.afip%.gob%.ar/contribuyente_/login%.xhtml") then message = "Unexpected URL after login: " .. current_url log(message) error(message) end print("Login successful desde LUA!!")