如何利用Rselenium中通过find“ findelements”命令找到的元素?

问题描述

我正在尝试使用下面的链接选择某个复选框。我已经设法使用findelements命令找到了该复选框,但是问题是我实际上无法使用通过findelements命令找到的元素来单击一个元素。问题似乎在于,findelements命令输出的列表如果您将unlist用作字符,则该列表将不可用,因为它将丢失其“包含有效绑定的对象” schtick。

我真的不知道该怎么做以及如何解决它,但是它应该相对容易,我无法想象不可能与findelements中的元素进行交互列表,但是每次尝试,包括像“ elements [4]”之类的简单操作,似乎都不起作用。

remDr <- RSelenium::remoteDriver(remoteServerAddr = "localhost",port = 4445L,browserName = "chrome")
remDr$open()
remDr$navigate("http://chicagodemocracy.org/ChooseElection.jsp")
remDr$screenshot(display = TRUE)

elements<- remDr$findElements(using = 'name',"office")
checkbox<-elements[4]
checkbox$clickElement()

remDr$screenshot(display = TRUE)
html <- xml2::read_html(remDr$getPageSource()[[1]])

解决方法

尝试使用xpath直接查找元素。您可以根据需要选择哪个复选框来确定“值”

checkbox<- remDr$findElement(using = 'xpath',"//li/input[@value='Alderman']")

checkbox$clickElement()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...