使用 Rselenium 单击跨域 iframe 元素
Click on cross domain iframe element using Rselenium
我使用的是 R,版本 3.3.2。使用 Rselenium 包,我试图从这个网站抓取一些数据:http://www.dziv.hr/en/e-services/on-line-database-search/patents/
我正在使用 Rselenium,我的代码如下所示:
selServ <- RSelenium::startServer(javaargs = c("-Dwebdriver.gecko.driver=\"C:/Users/Mislav/Documents/geckodriver.exe\""))
remDr <- remoteDriver(extraCapabilities = list(marionette = TRUE))
remDr$open()
Sys.sleep(2)
# Simulate browser session and fill out form
remDr$navigate("http://www.dziv.hr/hr/e-usluge/pretrazivanje-baza-podataka/patent/")
这不起作用:
webel <- remDr$findElement(using = "xpath", "/input[@id = 'TB1']")
然后我想使用 switchToFrame()
函数切换到 iframe,但是 iframe 不包含 id。
然后我有 tr 使用索引:webel <- remDr$switchToFrame(1) 但这只是 return NULL
此外,我认识到,iframe 具有不同的域。
是否可以从该网站获取数据?
您可以 select 第一个 iframe
并将其传递给 switchToFrame
方法:
webElem <- remDr$findElements("css", "iframe")
remDr$switchToFrame(webElem[[1]])
webel <- remDr$findElement(using = "xpath", "//input[@id = 'TB1']")
我使用的是 R,版本 3.3.2。使用 Rselenium 包,我试图从这个网站抓取一些数据:http://www.dziv.hr/en/e-services/on-line-database-search/patents/
我正在使用 Rselenium,我的代码如下所示:
selServ <- RSelenium::startServer(javaargs = c("-Dwebdriver.gecko.driver=\"C:/Users/Mislav/Documents/geckodriver.exe\""))
remDr <- remoteDriver(extraCapabilities = list(marionette = TRUE))
remDr$open()
Sys.sleep(2)
# Simulate browser session and fill out form
remDr$navigate("http://www.dziv.hr/hr/e-usluge/pretrazivanje-baza-podataka/patent/")
这不起作用:
webel <- remDr$findElement(using = "xpath", "/input[@id = 'TB1']")
然后我想使用 switchToFrame()
函数切换到 iframe,但是 iframe 不包含 id。
然后我有 tr 使用索引:webel <- remDr$switchToFrame(1) 但这只是 return NULL
此外,我认识到,iframe 具有不同的域。
是否可以从该网站获取数据?
您可以 select 第一个 iframe
并将其传递给 switchToFrame
方法:
webElem <- remDr$findElements("css", "iframe")
remDr$switchToFrame(webElem[[1]])
webel <- remDr$findElement(using = "xpath", "//input[@id = 'TB1']")