Rselenium单击由findElements生成的列表中的特定元素

问题描述 投票:1回答:1

我有一个有效的代码,其中对于给定的URL,我捕获具有相同类名的所有元素。似乎有三个,具有不同的“ ElementText”名称。

我的问题是,我想单击其中一个元素(clickElement),特别是第二个名称为“ GET MORE DEPARTURES”。

有人能为我指出正确的方向吗?我设法单击了第一个元素,但是没有单击列表中的特定元素。

请参见下面的代码,非常感谢。

library(RSelenium)图书馆(RVest)

# Download binaries, start driver, and get client object.
rd <- rsDriver(browser = "firefox", port = 1999L)
ffd <- rd$client

ffd$navigate(paste0("https://www.XXXXXX",sep=""))

load_btn <- ffd$findElements(using = "css selector", "button.md-raised.blue-md-button.md-primary.md-button.md-ink-ripple")

#getting list of element names from abobe
unlist(lapply(load_btn, function(x) x$getElementText()))

“ MARS 12”“获取更多出发地”“”

#My issue is here, how to I specify that I want to click the "GET MORE DEPARTURES" element?
load_btn$clickElements()
r web-scraping rselenium findelement
1个回答
1
投票

我已经找到解决方法:

# Download binaries, start driver, and get client object.
rd <- rsDriver(browser = "firefox", port = 1999L)
ffd <- rd$client

ffd$navigate(paste0("https://www.XXXXXXX",sep=""))

 load_btn <- ffd$findElements(using = "css selector", "button.md-raised.blue-md-button.md-primary.md-button.md-ink-ripple")

#getting list of element names from abobe
unlist(lapply(load_btn, function(x) x$getElementText()))

解决方案

solution<-unlist(lapply(load_btn, function(x) x$getElementText()))

load_btn <- load_btn[[which(solution== "GET MORE DEPARTURES")]]
© www.soinside.com 2019 - 2024. All rights reserved.