Envía eventos de mouse a elementos usando Rselenium en R

En el artículo, vamos a aprender cómo usar el paquete Rselenium para automatizar aplicaciones web. También aprenderemos cómo enviar eventos de mouse a la aplicación web usando RSelenium.

Implementación paso a paso

Paso 1: Cree un nuevo archivo llamado Rselenium.R en Rstudio.

Paso 2: Importe el paquete RSelenium a Rstudio usando el siguiente código:

R

# load library
library(RSelenium)

Paso 3: Cree un nuevo servidor Rselenium con los controladores web de Chrome. Esto creará un nuevo servidor Rselenium e iniciará el controlador web de Chrome.

R

# start the Selenium server
rdriver <- rsDriver(browser = "chrome", # browser name
                    port = 3230L, # port number
                    chromever  = "98.0.4758.102", # chrome browser version
)

Paso 4: cree un nuevo objeto de cliente desde el servidor Rselenium que creamos anteriormente.

R

# creating a client object and
# opening the browser
remDr <- rdriver$client

Paso 5: Abra la URL en el navegador usando el siguiente código.

R

# navigate to the url
remDr$navigate("http://www.google.com/ncr")

Paso 6: Selecciona el elemento de búsqueda por CSS usando el siguiente código.

R

# finding query css from the page
webElem <- remDr$findElement(using = "css", "[name = 'q']")

Aquí, q representa la consulta. Ahora, para enviar la palabra clave de búsqueda, estamos usando el método sendKeysToElements.

R

# sending the search keyword
webElem$sendKeysToElement(list("GeeksforgGeeks", key = "enter"))

Paso 7: Ahora, encontraremos todos los enlaces URL del resultado de búsqueda usando el siguiente código. Después de eso, almacenaremos todos los enlaces URL en una lista. Luego vamos a encontrar el título de la URL que coincida con nuestra palabra clave de búsqueda.

R

# finding all the URL links from the search result
webElems <- remDr$findElements(using = "css selector", "h3")
 
# storing the list of titles
resHeaders <- unlist(lapply(webElems, function(x) {x$getElementText()}))
 
# checking if the title matches within the list of URLs
webElem <- webElems[[which(resHeaders == "GeeksforGeeks |\
A computer science portal for geeks")]]

Paso 8: ahora, simplemente enviaremos un evento de clic del mouse para hacer clic en el enlace URL.

R

# clicking on the URL
webElem$clickElement()

Paso 9: Cerrar el navegador y el servidor Rselenium.

R

# closing the server
remDr$close()

A continuación se muestra la implementación completa:

R

# R program to demonstrate mouse event using Rselenium
 
# load the required packages
library(Rselenium)
 
# start the Selenium server
rdriver <- rsDriver(browser = "chrome", # browser name
                    port = 3230L, # port number
                    chromever  = "98.0.4758.102", # chrome browser version
)
 
# creating a client object and opening the browser
remDr <- rdriver$client
 
# navigate to the url
remDr$navigate("http://www.google.com/ncr")
 
# finding query css from the page
webElem <- remDr$findElement(using = "css", "[name = 'q']")
 
# sending the search keyword
webElem$sendKeysToElement(list("GeeksforgGeeks", key = "enter"))
 
# finding all the URL links from the search result
webElems <- remDr$findElements(using = "css selector", "h3")
 
# storing the list of titles
resHeaders <- unlist(lapply(webElems, function(x) {x$getElementText()}))
 
# checking if the title matches within the list of URLs
webElem <- webElems[[which(resHeaders == "GeeksforGeeks | A \
computer science portal for geeks")]]
 
# clicking on the URL
webElem$clickElement()
 
# closing the server
remDr$close()

Producción:

Publicación traducida automáticamente

Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *