无法使用RSelenium填写表单,找不到元素

无法使用RSelenium填写表单,找不到元素,r,selenium,selenium-webdriver,web-scraping,rselenium,R,Selenium,Selenium Webdriver,Web Scraping,Rselenium,我正在填写一张登录表 以下是重现错误的代码: 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$findElemen

我正在填写一张登录表

以下是重现错误的代码:

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消息:无法定位元素:#LoginId

关于如何让远程浏览器找到登录框有什么建议吗


谢谢。

你说得对-这是框架的问题。下面的代码适用于我

iframe <- remDr$findElement("xpath", "*//iframe[@id = 'loginIframe']")
remDr$switchToFrame(iframe)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))

iframe您如何知道这是xpath的正确语法?获取css和xpath的方法是右键单击元素,单击inspect,然后firefox和chrome都允许我复制xpath或css。由于iframe在“view source”中不可见,因此没有任何内容可以右键单击然后复制。谢谢。主要是尝试和错误,但我已经用了一些基本知识。我建议您也研究一下contains()命令。这真的很有帮助。最后,检查代码的一种简单方法是使用Rselenium中的$highlightElement()。如果站点上正确的元素突出显示,那么您就是黄金。感谢TTR提供的提示。这非常类似,但用于xpath,例如使用特定css选择器选择节点,而不必担心节点是否还有其他选择器。你可以读一些关于它的书
iframe <- remDr$findElement("xpath", "*//iframe[@id = 'loginIframe']")
remDr$switchToFrame(iframe)
remDr$findElement("id", "LoginId")$sendKeysToElement(list("username"))