r web-scraping phantomjs rselenium

Iniciar sesión en el sitio web con RSelenium y phantomjs en R, existen múltiples instancias de clase



web-scraping (1)

Dos opciones:

Use findElements para obtener ambos botones y haga clic en el segundo:

remDr$findElements("class name", "red-button")[[2]]$clickElement()

o use otro método selector como @SymbolixAU sugiere y apunte al segundo elemento directamente:

webElem <- remDr$findElement("css", ".red-button[value=''Log in'']") webElem$getElementAttribute("outerHTML") #[[1]] #[1] "<input type=/"submit/" value=/"Log in/" class=/"red-button/">" webElem$clearElement()

Estoy intentando iniciar sesión en esta página: https://www.optionslam.com/accounts/login/ usando el código en esta publicación como punto de partida, Raspe el sitio web protegido con contraseña en R

Pude llenar los campos de inicio de sesión, pero no puedo hacer clic en el botón de inicio de sesión. Si mira el origen de la página, la clase de inicio de sesión es "botón rojo"

<input type="submit" value="Log in" class="red-button"/>

Sin embargo, hay otro formulario en la parte superior de la página que también usa la misma clase, y el comando clickElement () hace clic en él. Al leer la documentación de RSelenium, no encuentro la forma de buscar la segunda instancia de esta clase o buscarla en función de type = "submit" o value = "Log In".

Aquí está mi código:

library(RSelenium) pJS <- phantom() # start phantomjs appURL <- ''https://www.optionslam.com/accounts/login/'' remDr <- remoteDriver(browserName = "phantomjs") remDr$open() remDr$navigate(appURL) remDr$findElement("id", "id_username")$sendKeysToElement(list("user")) remDr$findElement("id", "id_password")$sendKeysToElement(list("pass")) remDr$findElement("class name", "red-button")$clickElement()

Gracias por tu ayuda.