es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo superar el error de un solo javascript mientras se habilitan otros en HTMLUnit?

Soy nuevo en HTMLUnit. Estoy tratando de obtener información de un sitio público (proporcionado en el código a continuación). Mientras puedo abrir esta URL pública en el navegador Chrome o en la extensión Chrome Selenium sin errores y seguir funcionando con ella, mi programa HTMLUnit está arrojando un error como el siguiente, que parece originarse en un JavaScript particular en la página. Mi pregunta es, ¿cómo resolver este tipo de problema? No puedo deshabilitar completamente el JavaScript ya que la sección del formulario con los detalles no estará disponible en ese caso. Sin embargo, si uso el comando:

EcmaError: lineNumber=[55] column=[0] lineSource=[] name=[TypeError] sourceName=[https://www.marutisuzuki.com/js/server_cookies.js] message=[TypeError: No se puede encontrar la función fetchServerCookie en el objeto [object Object]. (https://www.marutisuzuki.com/js/server_cookies.js#55)]
com.gargoylesoftware.htmlunit.ScriptException: TypeError: No se puede encontrar la función fetchServerCookie en el objeto [object Object]. (https://www.marutisuzuki.com/js/server_cookies.js#55)

       String pageAsXml = null;
       String pageAsText = null;

       try{
           WebClient webClient = new WebClient(BrowserVersion.CHROME);
           HtmlPage page = webClient.getPage("https://www.marutisuzuki.com/dealer-showrooms/");
           //webClient.getOptions().setJavaScriptEnabled(false);
           pageAsXml = page.asXml();
           pageAsText = page.asNormalizedText();
           System.out.println(pageAsText);
       }
       catch(Exception e) {
           e.printStackTrace();
       }
   }
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el error es causado por un JavaScript específico en la página web (https://www.marutisuzuki.com/js/server_cookies.js) con el que el programa HTMLUnit está teniendo problemas. Dado que desactivar completamente el JavaScript no es una opción, una posible solución es intentar depurar el problema identificando la función fetchServerCookie y comprobando si se está llamando correctamente. Otra opción es intentar usar una versión diferente de HTMLUnit, como Firefox o InternetExplorer, o modificar el programa para que funcione con otra herramienta de extracción de datos de páginas web que pueda manejar JavaScript de manera más efectiva. También puede ser útil consultar recursos en línea, como foros o documentación, o buscar ayuda de otros expertos en IT con experiencia en extracción de datos de páginas web utilizando HTMLUnit.

Comments are closed.