无法使用 RSelenium 填写表单,无法定位元素
Unable To Fill Form Using RSelenium, Unable To Locate Element
我正在尝试填写登录表单。
这是重现错误的代码:
library(RSelenium)
require(XML)
RSelenium::startServer()
remDr <<- remoteDriver()
remDr$open()
appURL <- "https://www.schwab.com/public/schwab/nn/login/login.html&lang=en"
remDr$navigate(appURL)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))
这是收到的错误消息:
Selenium message:Unable to locate element: #LoginId
我尝试使用 xpath 和 css 得到相同的结果。我认为问题与使用框架的页面有关,因此 remDr 不能 "see" 登录框。
然后我运行这个代码:
webElem <- remDr$findElements(value = "//iframe")
sapply(webElem, function(x){x$getElementAttribute('name')})
[[1]]
[1] "loginIframe"
[[2]]
[1] ""
remDr$switchToFrame(1)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))
收到同样的错误信息:
Selenium message:Unable to locate element: #LoginId
关于如何让远程浏览器定位登录框有什么建议吗?
谢谢。
你说得对 - 这是框架的问题。以下代码对我有用。
iframe <- remDr$findElement("xpath", "*//iframe[@id = 'loginIframe']")
remDr$switchToFrame(iframe)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))
我正在尝试填写登录表单。
这是重现错误的代码:
library(RSelenium)
require(XML)
RSelenium::startServer()
remDr <<- remoteDriver()
remDr$open()
appURL <- "https://www.schwab.com/public/schwab/nn/login/login.html&lang=en"
remDr$navigate(appURL)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))
这是收到的错误消息:
Selenium message:Unable to locate element: #LoginId
我尝试使用 xpath 和 css 得到相同的结果。我认为问题与使用框架的页面有关,因此 remDr 不能 "see" 登录框。
然后我运行这个代码:
webElem <- remDr$findElements(value = "//iframe")
sapply(webElem, function(x){x$getElementAttribute('name')})
[[1]]
[1] "loginIframe"
[[2]]
[1] ""
remDr$switchToFrame(1)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))
收到同样的错误信息:
Selenium message:Unable to locate element: #LoginId
关于如何让远程浏览器定位登录框有什么建议吗?
谢谢。
你说得对 - 这是框架的问题。以下代码对我有用。
iframe <- remDr$findElement("xpath", "*//iframe[@id = 'loginIframe']")
remDr$switchToFrame(iframe)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))