如何使用Rselenium选择下拉框?

时间:2017-04-09 13:12:53

标签: r selenium

我对英超联赛的统计数据很感兴趣。因此,我尝试从此官方网站https://www.premierleague.com/stats/top/players/total_pass

获取数据

我正在使用R和RSelenium包。

library(rvest)
library(httr)
library(RSelenium)

remDr <- remoteDriver(port = 4445L)
remDr$open()
remDr$navigate('https://www.premierleague.com/stats/top/players/total_pass')
getsource <-remDr$getPageSource()
name<- read_html(getsource[[1]]) %>% html_nodes("strong") %>% html_text()

但是我遇到了一些问题。有一些类别的数据,如季节,职位,俱乐部等。

所以,我认为我可以根据这些类别获取数据。但我不知道如何使用此站点中的Rselenium在下拉框中选择特定内容。

我认为filenElementclickElement是有用的功能。但是,我不知道如何处理这些功能来选择2016/17赛季和门将位置等特定条件。

请给我一个建议。

1 个答案:

答案 0 :(得分:5)

使用以下代码,我可以让浏览器选择2014/15赛季。您需要检查各种下拉菜单的内容并根据需要进行扩展。

rD <- rsDriver(port=4444L,browser="chrome")
remDr <- rD$client

#navigate to main page
remDr$navigate('https://www.premierleague.com/stats/top/players/total_pass')

#find 'filter by season' box and click it
webElem <- remDr$findElement(using = 'xpath', value = "//*[@data-dropdown-block='FOOTBALL_COMPSEASON']")
webElem$clickElement()

#find 2014/15 season and click it
webElem1 <- remDr$findElement(using = 'xpath', value = "//*[@data-option-name='2014/15']")
webElem1$clickElement()