Buscar..


Introducción

Esta es una introducción a Selenium, usando Java. Si bien no esperamos que sepa nada sobre Selenium, debe tener conocimientos previos de Java para seguir este curso.

Descargar enlaces :

Selenio

IntelliJ IDEA

ChromeDriver

JDK 8

Configuración de la idea de IntelliJ para el selenio

Requisitos previos:

  1. Java está instalado
  2. Selenium se extrae en una carpeta (contiene 2 archivos y 1 carpeta)

Siga estos pasos para configurar IntelliJ Idea para Selenium.

  1. Haga clic en "Nuevo proyecto" .
  2. Elija la aplicación Java <"Hello World"
  3. Escriba el nombre del proyecto y créelo.

Tu pantalla debería verse algo como esto introduzca la descripción de la imagen aquí

Ahora ve a

File < Project Structure < Modules < Dependencies

Allí, haga clic en el icono más ( + ) verde y elija Biblioteca. Luego navegue a la carpeta de Selenium extraída, y agregue " selenium-java 2.4.0.jar ". Después de agregar esto, haga clic nuevamente en el ícono verde más ( + ), y ahora elija "Directorio". Esta vez, localice la carpeta libs de Selenium y haga clic en Aceptar, mientras la selecciona.

Al final, la estructura de su proyecto debería verse así. introduzca la descripción de la imagen aquí

Ahora, haga clic en Aceptar, y ya está todo listo.

Configurando ChromeDriver

Requisitos previos: ChromeDriver se descarga

Copia el siguiente código en tu clase.

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}

Si está utilizando Linux, asigne la ruta al Binary ChromeDriver.

Apertura de un sitio web utilizando Selenium

Usamos el método get para ir a un sitio web. Por ejemplo, esto abriría google

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:www.google.com");
    Thread.sleep(3000); //wait for 3 seconds
    driver.quit();      //close Chrome
}

driver.quit() cierra el navegador. Para crear un retraso, usamos Thread.sleep(3000) .

Obtención de elementos en selenio

Cada elemento HTML en Selenium se llama WebElement . Por ejemplo, una etiqueta p sería un WebElement , a etiqueta sería un WebElement , etc. Considere la siguiente estructura html:

<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>

Ahora, si quisiéramos obtener a etiqueta, podríamos hacer

WebElement link = driver.findElement(By.id("link1"));

Ahora, podemos hacer clic en esto, por

link.click();

Veamos otro ejemplo. Si quisiéramos el texto de la etiqueta p , es decir , " Esto es un párrafo ", podemos hacer

WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());

También podemos obtener elementos por etiquetas, como

WebElement tag = driver.findElement(By.tagName("a"));

Ejemplo de trabajo en selenio

Ahora que conocemos los conceptos básicos de Selenium, podemos hacer nuestro propio proyecto. Para este ejemplo, crearemos un programa que encuentre las preguntas más recientes sobre el desbordamiento de pila.

Empezamos fácil, dejemos abierto el desbordamiento de pila.

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    Thread.sleep(3000);
    driver.quit();
}

Ahora, si nos fijamos en la fuente de la página, se encuentra que todas las preguntas, son a etiquetas, con un className de question-hyperlink . Sin embargo, dado que hay varias preguntas, utilizamos una List de WebElement , en lugar de WebElement . Así, podemos hacer

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}

Ahora, tenemos que conseguir el href atributo de la a etiqueta, que tiene el enlace de la cuestión. Para hacer esto, podemos usar getAttribute("href") en cada WebElement , como

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
    System.out.println(list.size());
    list.forEach(e->System.out.println(e.getAttribute("href")));
    driver.quit();
}

Esto imprime los enlaces de las preguntas principales sobre desbordamiento de pila.

Obtención de atributos de elementos web en Selenium

Para obtener el atributo de un elemento WebElement , usamos getAttribute en ese elemento WebElement . Por ejemplo, considere la siguiente etiqueta html

<a id="click" href="https://www.google.com">

Podemos encontrar el atributo href del elemento por

WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow