簡體   English   中英

Rselenium 從 findElements 生成的列表中單擊特定元素

[英]Rselenium click specific element from list generated by findElements

我有一個工作代碼,對於給定的 URL,我捕獲具有相同類名的所有元素。 似乎有三個,具有不同的“ElementText”名稱。

我的問題是我想單擊這些元素之一 (clickElement),特別是名稱為“GET MORE DEPARTURES”的第二個元素。

任何人都可以指出我如何做到這一點的正確方向嗎? 我設法單擊了第一個元素,但沒有單擊列表中的特定元素。

請參閱下面的代碼,非常感謝。

圖書館(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()))

“火星 12 號”“獲得更多的出發”“”

#My issue is here, how to I specify that I want to click the "GET MORE DEPARTURES" element?
load_btn$clickElements()

我找到了解決方案:

# 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")]]

我會嘗試對元素進行子集化並單擊它(因為您已經知道它是列表中的第二個元素):

load_btn[[2]]$ClickElement()

祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM