我正在参与一个项目,其中有一个网页,我需要单击该网页才能获取 pdf 文件。该文件出现在同一页面内的新窗口中(我认为是 iframe)。然后我需要单击一个按钮来下载文件。我正在使用的代码如下:
library(wdman)
library(RSelenium)
library(xml2)
library(selectr)
library(httr)
library(jsonlite)
#Code
#start RSelenium
# using RSelenium to start firefox on the selenium server
remDr <- rsDriver(
port = 4445L,
browser = "firefox"
)
#remDr$open()
remDr <- remoteDriver(port = 4445L,browser = "firefox")
# open a new Tab on Chrome
remDr$open()
#navigate to your page
remDr$navigate("https://www.southtechhosting.com/SanJoseCity/CampaignDocsWebRetrieval/Search/SearchByElection.aspx")
Sys.sleep(2)
webElem <- remDr$findElement(using = "xpath", '//*[@id="ctl00_DefaultContent_ASPxRoundPanel1_btnFindFilers_CD"]')
webElem$clickElement()
Sys.sleep(1)
webElem2 <- remDr$findElement(using = "xpath", '//*[@id="ctl00_GridContent_gridFilers_DXCBtn0"]')
webElem2$clickElement()
Sys.sleep(1)
webElem3 <- remDr$findElement(using = "xpath", '//*[@id="ctl00_DefaultContent_gridFilingForms_DXCBtn0Img"]')
webElem3$clickElement()
Sys.sleep(1)
#Move
myframe <- remDr$findElement("xpath", '//*[@id="ctl00_GenericPopupSizeable_InnerPopupControl_CIF-1"]')
remDr$switchToFrame(myframe)
我认为此时一切正常,但随后我遇到了问题。我不知道我是否无法移动到 iframe(尽管我的代码最后几行有效),因为这就是我得到的:
现在,我需要单击下载按钮,但是当我检查该元素时,我得到以下信息:
我已经搜索过了,它告诉我该元素是隐藏的。有没有办法让 Rselenium 点击下载?
我问这个问题是因为在一个类似的项目中,我得到了一个相同风格的窗口,但在检查时我得到了这个:
按钮出现,我可以复制 xpath,但我读了以某种方式隐藏的元素的描述,所以我认为这就是为什么我的代码即使移动到 iframe 后也找不到该元素的原因。
任何帮助将不胜感激,我想如果有人可以帮助我解决第一个示例,我可以解决与最后解释的第二个示例相关的问题,非常感谢。