单击RSelenium复选框

时间:2016-03-16 09:43:27

标签: r selenium web-scraping rselenium

我想点击此网址上的“HIV / AIDS”复选框:https://www.unodc.org/ngo/showExtendedSearch.do使用RSelenium

到目前为止,这是我的代码:

#load library
library(RSelenium)

#Check for serves and start server
RSelenium::checkForServer()
RSelenium::startServer()

#Specify remote driver
remDr <- RSelenium::remoteDriver(browserName='firefox')

#new remotedriver using default initialisation values
remoteDriver$new()

#Initialise session 
remDr$open()

#navigate to advanced search page

url <- "https://www.unodc.org/ngo/showExtendedSearch.do"
remDr$navigate(url)

#Click 'HIV/AIDS' filter
button <- remDr$findElements("name","HIV/Aids")

button$clickElement()

找到复选框“艾滋病毒/艾滋病”的元素是错误的。我现在得到一个空列表作为回报。我尝试使用selectorgadget导致以下代码:

button <- remDr$findElements("css selector",'#applicationArea > form > table > tbody > tr > td > table:nth-child(7) > tbody > tr:nth-child(2) > td > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td:nth-child(4) > input[type="checkbox"]')
button$clickElement()

这次我没有得到一个空列表,但也没有得到所需的webelement。

如果有人可以提供帮助,那将非常有用。

编辑:我的上一个代码(使用css选择器)似乎适用于其他人。但是,我得到以下错误:attempt to apply non-function,所以其他一些错误。

2 个答案:

答案 0 :(得分:1)

您为我工作过的代码:

library(RSelenium)

remDr <- remoteDriver(browserName = "firefox")
remDr$open()

url <- "https://www.unodc.org/ngo/showExtendedSearch.do"
remDr$navigate(url)

webElem <- remDr$findElement(using = 'css', 
                             value = '#applicationArea > form > table > tbody > tr > td > table:nth-child(7) > tbody > tr:nth-child(2) > td > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td:nth-child(4) > input[type="checkbox"]')

webElem$clickElement()

enter image description here

答案 1 :(得分:0)

试试这个:

button <- remDr$findElements("name","areaAidshiv")
button$clickElement()