簡體   English   中英

在 RSelenium package 到 select 多個下拉項中使用 findElements() 並使用 clickElement()

[英]Using findElements() in the RSelenium package to select multiple dropdown items and using clickElement()

我正在嘗試使用 RSelenium package 中的 clickElements() 來下拉“distrito”下拉面板中的所有向下箭頭。 我可以對其中一個下拉菜單執行此操作,但我想對所有下拉菜單都執行此操作。

如何單擊所有下拉項?

library(RSelenium)

rD <- rsDriver(browser="firefox", port=4536L)
remDr <- rD[["client"]]
url2 = "https://www.fotocasa.es/es/comprar/viviendas/barcelona-capital/todas-las-zonas/l"
remDr$navigate(url2)
remDr$maxWindowSize()

# accept cookies
remDr$findElement(using = "xpath",'/html/body/div[1]/div[4]/div/div/div/footer/div/button[2]')$clickElement()
#click on Distrito
remDr$findElement(using = "xpath", '/html/body/div[1]/div[2]/div[1]/div[3]/div/div[1]/div')$clickElement()

remDr$findElement(using = "class name", 'sui-MoleculeCheckboxField-toggleIcon')$clickElement()

findElements()創建找到的所有webElement的列表。 因此,您不能在此列表上使用clickElement() ,但您需要創建一個循環,如下所示:

library(RSelenium)

rD <- rsDriver(browser="firefox", port=4536L)
remDr <- rD[["client"]]
url2 = "https://www.fotocasa.es/es/comprar/viviendas/barcelona-capital/todas-las-zonas/l"
remDr$navigate(url2)
remDr$maxWindowSize()

# accept cookies
remDr$findElement(using = "xpath",'/html/body/div[1]/div[4]/div/div/div/footer/div/button[2]')$clickElement()

# click on Distrito
remDr$findElement(using = "class",'re-GeographicSearchNext')$clickElement()

# Find all checkboxes
checkboxes <- remDr$findElements(using = "class name", 're-GeographicSearchNext-checkboxItem')

class(checkboxes)
# [1] "list"

length(checkboxes)
# 10

# Loop for each checkbox
for (i in seq_along(checkboxes)) {
  checkboxes[[i]]$clickElement()
}

暫無
暫無

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

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