r - RSelenium 单击按钮并下载生成的 csv
问题描述
我是新手RSelenium
,我想简单地单击加载数据按钮,然后单击网页中生成的 CSV,但我无法正确找到该元素,这就是我所做的:
library(RSelenium)
library(dplyr)
library(tidyverse)
mydriver <- rsDriver(browser = "chrome", port= 4837L, chromever="93.0.4577.63")
remDr <- mydriver[['client']]
remDr$open()
link_download <- "https://forexsb.com/historical-forex-data"
remDr$navigate(link_download)
这些是我用来选择加载数据按钮的几种方法,但会产生No Such Element Found
:
load_data_element <- remDr$findElement(using="css selector", value="#btn btn-primary")
load_data_element$clickElement()
load_data_element <- remDr$findElement(using="css selector", value=".btn-load-data")
load_data_element$clickElement()
load_data_element <- remDr$findElement(using="xpath", value="//button[@id='btn-load-data']")
load_data_element$clickElement()
load_data_element <- remDr$findElement(using="xpath", value="//*[@id='btn-load-data']")
load_data_element$clickElement()
这是找到某个元素的唯一选择器,但单击它时仍然没有任何反应:
load_data_element <- remDr$findElement(using="xpath", value="//button")
load_data_element$clickElement()
任何指南都会有所帮助,谢谢!
解决方案
加载数据按钮和CSV 生成的下载都在 iframe 中,因此这应该使元素在将焦点切换到 iframe 后可点击:
iframe_detect <- remDr$findElements(using = "xpath", value = "//iframe[@id='data-app-frame']")
remDr$switchToFrame(iframe_detect[[1]])
load_data_element <- remDr$findElement(using="xpath", value="//button[@id='btn-load-data']")
load_data_element$clickElement()
推荐阅读
- symfony - crudcontroller 中基于当前登录用户或用户 ID 的实体数据
- typescript - 如何在打字稿中访问嵌套条件类型
- ansible - 如何遍历主机名不同的变量列表
- hangouts-chat - hangout-chat 可以重新调整它的 PC 网络或移动设备吗?我想让它自己自动调整大小
- javascript - 使用 GET METHOD 选择表单
- amazon-web-services - AWS alb/elb 日志或 vpc 流日志是否包含用户 POST 请求的正文?
- reactjs - VS Code 不会警告可能的未定义对象
- unity3d - VSCode 中的 Unity API 离线搜索
- hadoop - 将datanode和备份现有数据添加到Windows机器上的独立Hadoop
- snowflake-cloud-data-platform - SQL 查询以查找雪花帐户中可用的表数(包括所有数据库和模式)