• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

231
Vistas
Uso de selenio desde mi aplicación sin ningún servidor externo

Desde dentro de mi aplicación, quiero acceder a un sitio web y luego realizar la acción del usuario. Actualmente estoy usando webview, pero creo que webdriver será fácil de usar y tendrá un enfoque correcto.

Código actual:

 WebView browser = (WebView) view.findViewById(R.id.webview); browser.getSettings().setJavaScriptEnabled(true); browser.getSettings().setDomStorageEnabled(true); browser.getSettings().setUserAgentString(`"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36");` browser.setWebViewClient(new MyBrowser()); browser.loadUrl("https://myurl.com");

Problemas con el código actual: es difícil enviar almacenes de claves o usar Xpath.

¿Qué estoy buscando? Ingrese al sitio web usando el controlador y luego haga clic en los botones, etc. Pseudocódigo de la siguiente manera:

 chat=driver.find_element_by_xpath("/html/somepath") chat.click() time.sleep(2) search=driver.find_element_by_xpath("/html/body/div[1]/div/div/div[2]/div[1]/span/div/span/div/div[1]/div/label/input") search.click()

Entiendo que esto es posible usando selenium/appium. Pero lo que estoy confundido es que selenium/appium también necesita un servidor que se ejecute en una máquina separada. Quiero ejecutar todo el código en mi aplicación sin un servidor externo ni más aplicaciones.

¿Puedo simplemente agregar lib que me da acceso a apis como mostré arriba?

over 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede usar Selenium o Appium sin ningún servidor. Ambos son complementos, lo que significa que son básicamente código abierto o bibliotecas. Usted llama a esos objetos en su máquina local (o teléfono), no llama a una API remota en línea.

Selenium y Appium ayudan a encontrar elementos en una página web o para encontrar elementos dentro de una aplicación móvil. No hay absolutamente ninguna necesidad de un servidor aquí o una máquina remota.

Entonces, SÍ , solo agregue la lib que le da acceso a las api como mostró arriba.

over 3 years ago · Santiago Trujillo Denunciar

0

Selenio

Selenium en su forma básica no necesita ningún servidor separado para ejecutarse. Selenium junto con su amplia gama de herramientas y bibliotecas que pueden admitir la automatización de navegadores web dentro de la misma máquina (es decir, localhost ).


WebDriver

En el núcleo de Selenium se encuentra WebDriver , una interfaz para escribir conjuntos de instrucciones que se pueden ejecutar de manera intercambiable en muchos navegadores utilizando el soporte nativo de cada navegador para la automatización de pruebas. Esto se puede lograr en tres sencillos pasos:

  • Instalación de la biblioteca de Selenium
  • Instalación de los controladores del navegador
  • Escribiendo tu primer script de Selenium

Bloque de código de ejemplo:

 System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver"); WebDriver driver = new FirefoxDriver(); driver.get("https://www.amazon.com/"); driver.findElement(By.cssSelector("input.nav-input[value='Go']")).click();

Rejilla de selenio

Sin embargo, Selenium también admite un servidor de distribución para escalar la asignación del navegador. Si su caso de uso incluye pasos para ejecutar pruebas en paralelo en varias máquinas, entonces Selenium Grid sería su mejor opción.

Selenium Grid permite la ejecución de scripts de WebDriver en máquinas remotas (virtuales o reales) mediante el enrutamiento de comandos enviados por el cliente a instancias de navegador remotas. Su objetivo es proporcionar una manera fácil de ejecutar pruebas en paralelo en varias máquinas.

Selenium Grid también le permitiría ejecutar pruebas en paralelo en varias máquinas y administrar diferentes versiones y configuraciones del navegador de forma centralizada (en lugar de en cada prueba individual).

Habiendo dicho eso, resuelve un subconjunto de problemas comunes de delegación y distribución, pero es posible que no pueda administrar su infraestructura y que no se adapte exactamente a sus necesidades específicas.


apio

Del mismo modo,Appium es una herramienta de código abierto para automatizar aplicaciones nativas, web móviles e híbridas en plataformas móviles iOS, móviles Android y de escritorio Windows. Las aplicaciones híbridas que tienen un envoltorio alrededor de una webview son un control nativo que permite la interacción con el contenido web. Proyectos como Apache Cordova facilitan la creación de aplicaciones utilizando tecnologías web que luego se agrupan en un contenedor nativo, creando una aplicación híbrida.

over 3 years ago · Santiago Trujillo Denunciar

0

Según su pregunta y su comentario de respuesta a la respuesta proporcionada por @undetectedSelenium, se aplican las siguientes suposiciones:

  1. Está probando un navegador dentro de un teléfono Android que está conectado a una máquina con Windows a través de un servidor adb que se ejecuta en la máquina con Windows.
  2. El navegador bajo prueba es Chrome

Instale selenium como parte de su proyecto:

 <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.1.2</version> </dependency> </dependencies>

Bloque de código de muestra basado en su código psuedo y la respuesta proporcionada por @undetectedSelenium

 System.setProperty(“webdriver.chrome.driver”, “C:\\path\\to\\chromedriver.exe”); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption(“androidPackage”, “com.android.chrome”); // By default if the following option is not applied, selenium will take the 1st available // node provided by the adb server if multiple android devices are attached options.setExperimentalOption("androidDeviceSerial", deviceId); WebDriver driver = new ChromeDriver(options); driver.get("https://www.amazon.com/"); driver.findElement(By.cssSelector("input.nav-input[value='Go']")).click();

La variable deviceId debe contener el uuid enumerado como un dispositivo del servidor adb para el dispositivo en particular bajo prueba, es decir

 options.setExperimentalOption("androidDeviceSerial", 95s572sp0478);

También necesitará el Chromedriver correcto para su dispositivo Android. Compruebe la versión del navegador Chrome instalada en el dispositivo y descargue el controlador correcto desde aquí para su máquina con Windows Chromedriver Downloads . Luego colóquelo en su directorio deseado y agregue la ruta del directorio en el código.

over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda