Получение данных из таблицы веб-страницы с помощью RSelenium

Я пытаюсь получить данные о максимальном годовом потоке с этого веб-сайта Национального архива речного стока (Великобритания): http://nrfa.ceh.ac.uk/data/station/info/69032 с использованием RSelenium. Я не могу найти способ согласовать раскрывающееся меню. В настоящее время я могу полуавтоматизировать процесс, используя:

library(RSelenium)
checkForServer()
startServer()
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4444, browserName = "firefox", platform = "LINUX")
remDr$open()
i <- "69032"
remDr$navigate(paste0("http://nrfa.ceh.ac.uk/data/station/peakflow/", i))
# read the raw html and parse
doc<-htmlParse(remDr$getPageSource()[[1]])
peak.flows <- as.numeric(readHTMLTable(doc)$tablesorter[, "Flow (m3/s)"])

Это своего рода хакерство, и мне нужно нажимать несколько кнопок на странице, а не заставлять RSelenium делать это. Есть ли предложения относительно того, как RSelenium может выбрать вкладку «Пиковые данные потока», а затем опцию «Максимальные годовые данные (AMAX)» в раскрывающемся меню?


person Dave_L    schedule 29.01.2016    source источник


Ответы (1)


library(RSelenium) 
checkForServer() 
startServer() 
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4444, browserName = "firefox", platform = "LINUX") 
remDr$open() i <- "69032"
remDr$navigate(paste0("http://nrfa.ceh.ac.uk/data/station/peakflow/", i))
remDr$findElement(using="css selector",'.selected a')$clickElement() 
Sys.sleep(5) 
remDr$findElement(using = "css selector", "#selectDataType")$clickElement()
remDr$findElement(using = "css selector", "#selectDataType")$sendKeysToElement(list(key="down_arrow", key="enter")) 
Sys.sleep(2)`

Если вы хотите узнать идентификатор css интересующего элемента, установите плагин [SELECTOR GADGET] в Chrome. Выделите элемент, по которому RSelenium должен щелкнуть, затем возьмите идентификатор css.

person Bharath    schedule 03.02.2016