R调用RSelenium自动下载GISAID新冠元数据报错排查
R环境下RSelenium自动化下载GISAID新冠元数据相关问题
实现目标
在R环境中搭建自动化流程,从GISAID平台下载新冠患者元数据文件,支撑后续分析结果的每日自动更新,平台登录入口为https://www.epicov.org/epi3/start。
已完成的可运行流程
基于RSelenium工具目前已实现以下可稳定运行的步骤:
- 完成Chrome驱动适配:通过手动删除冲突版本的方式,临时解决了Chrome与chromedriver版本不匹配的RSelenium已知问题,同时配置了反自动化检测相关参数
- 实现自动登录:可自动导航至GISAID登录页,输入账号密码完成登录操作
- 定位元数据下载触发按钮:可自动跳转至EpiCoV™标签页,进入下载入口,切换至对应iframe后,准确定位到患者元数据下载按钮并完成点击操作
核心报错问题
点击元数据下载按钮后,页面会弹出使用条款确认弹窗,后续编写的「勾选同意复选框、点击确认下载」代码执行异常:
- 运行复选框点击代码
checkbox$click()时,返回错误:Error: attempt to apply non-function - 弹窗内的下载按钮点击操作无任何响应
待解决的其他疑问
- 自定义下载路径配置:目前未找到RSelenium中配置自定义下载目录的方法,下载的文件只能自动保存到系统默认下载路径
- PhantomJS驱动适配问题:如果将浏览器驱动替换为
wdman::phantomjs,会出现链接无法跳转等异常,需要确认该问题是否普遍存在、是否有可行修复方案(PhantomJS不存在Chrome驱动的版本冲突问题,安装部署流程更简便)
可用于排查的留存材料
目前已留存以下材料可供问题定位:
- 已实现可运行部分的完整代码
- 使用条款弹窗页的完整HTML源码
- 当前运行环境的
sessionInfo输出信息
内容的提问来源于stack exchange,提问作者Tom Wenseleers
相关产品推荐
相关产品推荐

