Я намерен загружать и очищать базы данных с помощью RSelenium
. Я могу открыть ссылку, однако у меня возникают проблемы с загрузкой и открытием базы данных. Я считаю, что xpath
правильный, но когда я пытаюсь открыть, я получаю следующую ошибку
Selenium message:no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id = "ESTBAN_AGENCIA"]"}
Мой код следующий:
dir <- getwd()
file_path <- paste0(dir,"\\DataBase") %>% str_replace_all("/", "\\\\\\")
eCaps <- list(
chromeOptions =
list(prefs = list('download.default_directory' = file_path))
)
system("taskkill /im java.exe /f", intern=FALSE, ignore.stdout=FALSE)
#Creating server
rD <- rsDriver(browser = "chrome",
chromever = "101.0.4951.15",
port = 4812L,
extraCapabilities = eCaps)
#Creating the driver to use R
remDr <- remoteDriver(
remoteServerAddr = "localhost",
browserName = "chrome",
port = 4812L)
#Open server
remDr$open()
#Navegating in the webpage of ESTABAN
remDr$navigate("https://www.bcb.gov.br/acessoinformacao/legado?url=https:%2F%2Fwww4.bcb.gov.br%2Ffis%2Fcosif%2Festban.asp")
##Download
remDr$findElement(using = "xpath", '//*[@id = "ESTBAN_AGENCIA"]/option[1]')
Элемент, к которому вы пытаетесь получить доступ, находится внутри iframe
, и вам нужно сначала переключить этот iframe, чтобы получить доступ к элементу.
remDr$navigate("https://www.bcb.gov.br/acessoinformacao/legado?url=https:%2F%2Fwww4.bcb.gov.br%2Ffis%2Fcosif%2Festban.asp")
#Switch to Iframe
webElem <- remDr$findElement("css", "iframe#framelegado")
remDr$switchToFrame(webElem)
##Download
remDr$findElement(using = "xpath", '//*[@id = "ESTBAN_AGENCIA"]/option[1]')