Buenas tardes equipo,
Solicito de su ayuda indicándome como puedo hacer para que mi robot recorra una tabla y que al momento de recorrerla de clic encima de cada link situado en de primero en cada una de las filas, lo que he podido realizar es sacar la tabla y meterla dentro de una hoja de excel.
Muchas Gracias.
Recorrer una tabla web y abrir los links que se encuentran al principio de cada fila
Compartir
JoseL
Mira, lo primero que debes hacer, es guardar toda la tabla en una variable. Por buenas prácticas y porque generalmente es así, estas tienen un id o una clase que te ayudará a guardarlas en una variable.
Esto lo puedes hacer con:
var tabla = document.getElementById(«nombre del id»)
Con la tabla ya extraída, simplemente lo que debes hacer es acceder a las filas, puedes hacerlo de la siguiente manera:
var filas = tabla.getElementsByTagName(«tr»);
Luego con un for, vas accediendo a cada celda, por ejemplo:
for (let i = 0; i < filas.length; i++) {
// Acá basicamente vas iterando las filas 1 por uno y vas accediendo a la posición 0 dado que todos los links se encuentran en la posición 0 de cada fila.
let link = filas[i][0];
// Luego solo tienes que mandar el click, puede ser así:
link.click();
}
Eso debería funcionar. Sin embargo, debes tener en cuenta que esa es para una estructura generica. Puede ser que la estructura de la tabla que quieres automatizar cambié, por lo que en ese caso debes adaptarla.
Espero haberte ayudado.
dani.quintero
Hola jose gracias por tu respuesta, recorrer el excel puedo hacerlo, el problema es que no he logrado que mi robot de clic encima de cada uno de los links que posteee en la imagen, que lo haga de manera secuencial. La tabla se encuentra en una pagina web.
JoseL
Ese código que te mande es para que lo ejecutes en un javascript.
Si no, una manera mucho mas sencilla es hacerlo con el código «Full Xpath». Básicamente, primero debes contar cuantos elementos tiene la tabla (eso lo podes hacer con js), luego copias el código full xpath de la primera celda. En este caso, debes identificar donde esta el numero que es el que irá aumentando en ese código que se te generará.
Finalmente, en tu rocketbot básicamente sería crear un for que recorra el tamaño de la tabla y vas dando click al código full xpath y el numero que cambia lo haces con una variable. Por ejemplo:
/html/body/div[5]/div[2]/div/div/main/div/aside/div/div/section[4]/div/div/div[1]/div/div/div[1]/div/h4/a
/html/body/div[5]/div[2]/div/div/main/div/aside/div/div/section[4]/div/div/div[1]/div/div/div[2]/div/h4/a
Este es un código full xpath cualquier. En este caso, el valor que cambia de uno a otro es el div que esta casi al final. Por ello, vos lo harías de la siguiente manera dentro del for:
/html/body/div[5]/div[2]/div/div/main/div/aside/div/div/section[4]/div/div/div[1]/div/div/div[{contador}]/div/h4/a
La variable contador es la que pusiste como elemento iterador en el for que creaste previamente y listo. Así vas a poder ir accediendo a cada link.
dani.quintero
Esto es lo que me sale
dani.quintero
Mira
JoseL
Ocupa la segunda opción mejor, ya que es mas sencilla. Para la utilización de javascript necesitarias igual hacer un for externo del comando. En este caso, habría que ir extrayendo el link de cada fila una por una con una script de js y irle dando click.
Por eso te comenté que para mas sencillo utilizarás el metodo del xpath. De esa forma es mucha más sencilla si estas comenzando.