selenium
Primer proyecto en selenio con Java.
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 :
Configuración de la idea de IntelliJ para el selenio
Requisitos previos:
- Java está instalado
- Selenium se extrae en una carpeta (contiene 2 archivos y 1 carpeta)
Siga estos pasos para configurar IntelliJ Idea para Selenium.
- Haga clic en "Nuevo proyecto" .
- Elija la aplicación Java <"Hello World"
- Escriba el nombre del proyecto y créelo.
Tu pantalla debería verse algo como esto
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í.
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