R 如何从资源库中的elementID创建可单击的webElement?

R 如何从资源库中的elementID创建可单击的webElement?,r,rselenium,R,Rselenium,我正在尝试从这个GIS下载数据,但我需要的一些按钮元素位于阴影dom中 我的策略是运行一个JS脚本,使用shadowRoot.querySelector获取“elementID”,并使用它指向我需要单击的按钮。我想我可以使用RSelenium::webElement来创建按钮元素,但是当我尝试单击它们时,我遇到了一个错误 pacman::p_load(RSelenium, glue, dplyr, rvest) driver <- rsDriver(browser = c("

我正在尝试从这个GIS下载数据,但我需要的一些按钮元素位于阴影dom中

我的策略是运行一个JS脚本,使用
shadowRoot.querySelector
获取“elementID”,并使用它指向我需要单击的按钮。我想我可以使用
RSelenium::webElement
来创建按钮元素,但是当我尝试单击它们时,我遇到了一个错误

pacman::p_load(RSelenium, glue, dplyr, rvest)

driver <- rsDriver(browser = c("chrome"), chromever = "90.0.4430.24")
chrome <- driver$client

wisc_url <- "https://data.dhsgis.wi.gov/datasets/wi-dhs::covid-19-historical-data-by-county/about"

chrome$navigate(url = wisc_url)
Sys.sleep(5)

# open side panel
wisc_dl_panel_button <- chrome$findElement("css selector", "#main-region > div.content-hero > div.content-hero-footer > div.content-footer.flex-row > div.content-footer-right > div.yielded > button")
wisc_dl_panel_button$clickElement()
# sometimes it needs time to create the file
Sys.sleep(120)

# get elementId from shadow DOM
wisc_dlopts_elt_id <- chrome$executeScript("return document.querySelector('hub-download-card').shadowRoot.querySelector('calcite-card').querySelector('calcite-dropdown')")[[1]]
wisc_dlopts_elt <- webElement(elementId = wisc_dlopts_elt_id,
                              browserName = "chrome",
                              port = 4567)
wisc_dlopts_elt$clickElement()

## Error in checkError(res) : 
##  Undefined error in httr call. httr output: length(url) == 1 is not TRUE
pacman::p_加载(RSelenium、胶水、dplyr、rvest)

驱动程序您是否尝试使用
findElements

如果您获得了CSS或Xpath,您可以尝试以下方法:

frames <- remDr$findElements("css selector", 'your_css')
那是我通常做的

frames[[1]]$clickElement()