--- title: "Estructura de la Función" url: https://docs.catalyst.zoho.com/es/smartbrowz/help/browser-logic/function-structure/ description: "Codifique una función Serverless de Catalyst para realizar cualquier tarea del navegador que de otro modo haría manualmente." last_updated: 2026-03-24T12:08:39Z service: SmartBrowz type: general --- # Estructura de la Función Browser Logic Cuando [crea una función de Browser Logic](https://docs.catalyst.zoho.com/es/smartbrowz/help/browser-logic/implementation/) desde el CLI de Catalyst, se crea con una estructura de código base como se muestra a continuación. Catalyst también crea las dependencias y archivos de configuración requeridos para su función y su proyecto. Puede consultar la página de ayuda [Estructura del Directorio del Proyecto](https://docs.catalyst.zoho.com/es/cli/v1/project-directory-structure/introduction/) para obtener detalles sobre los archivos de configuración generales. ### Java > **Nota:** Este código base a continuación estará presente en su archivo de función cuando inicialice una función de Browser Logic en Java con Selenium ```java import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONObject; import org.openqa.selenium.chrome.ChromeDriver; import com.catalyst.browserlogic.SeleniumHandler; public class BrowserlessExample implements SeleniumHandler { private static final Logger LOGGER = Logger.getLogger(SeleniumExample.class.getName()); JSONObject responseData = new JSONObject(); @Override @SuppressWarnings("unchecked") public void runner(HttpServletRequest request, HttpServletResponse response,ChromeDriver driver) throws Exception { try { //Obtiene el endpoint y el método al que se realizó la llamada String url = request.getRequestURI(); String method = request.getMethod(); driver.get("https://www.example.com"); responseData.put("message", "Title of the page "+driver.getTitle()); //Envía la respuesta de vuelta al cliente response.setContentType("application/json"); response.getWriter().write(responseData.toString()); response.setStatus(200); } catch (Exception e) { //Las acciones se registran. Puedes revisar los logs desde Catalyst Logs. LOGGER.log(Level.SEVERE, "Exception in SeleniumExample", e); responseData.put("error", "Internal server error occurred. Please try again in some time."); response.getWriter().write(responseData.toString()); response.setStatus(500); } } } ``` ### NodeJS > **Nota:** Este código base a continuación estará presente en su archivo de función cuando inicialice una función de Browser Logic en NodeJS con Puppeteer ```java module.exports.puppeteer = async (request, response, page) => { await page.goto('https://example.com/',{waitUntil: "domcontentloaded"}); const pageTitle = await page.title(); response.setHeader('Content-Type', 'application/json'); response.write(JSON.stringify({ output: pageTitle })); response.end(); }; ```