使用Rselenium单击跨域iframe元素

时间:2016-12-22 19:45:16

标签: r iframe web-scraping cross-domain 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&lt; - remDr $ switchToFrame(1)但这只是返回NULL

另外,我认识到,iframe有不同的域名。

是否有可能从此网站收集数据?

1 个答案:

答案 0 :(得分:4)

您可以选择第一个iframe并将其传递给switchToFrame方法:

webElem <- remDr$findElements("css", "iframe")
remDr$switchToFrame(webElem[[1]])
webel <- remDr$findElement(using = "xpath", "//input[@id = 'TB1']")