2016-12-22 4 views
1

Я использую R, версия 3.3.2. Использование пакета Rselenium, я пытаюсь лом некоторых данных с этого сайта: http://www.dziv.hr/en/e-services/on-line-database-search/patents/Нажмите на элемент перекрестного домена iframe, используя Rselenium

Я использую 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']") 

Затем я захотел переместиться в iframe с помощью функции switchToFrame(), но iframe не содержит id.

Тогда я тр использовать индекс: webel < - remDr $ switchToFrame (1), но это просто возвращает NULL

Кроме того, я узнал, IFrame имеет другой домен.

Можно ли просмотреть данные с этого сайта?

ответ

1

Вы можете просто выбрать первый iframe и передать его методу switchToFrame:

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

Третья команда возвращает ошибку: 'Деталь: Элемент не может находиться на странице с помощью данного поиска parameters'. Вы пробовали его на месте? Я думаю, что проблема в другом домене iframe (http://it-app.dziv.hr/Pretrage/en/Patenti.aspx) – Mislav

+0

извините, он работает правильно. Виноват – Mislav

Смежные вопросы