RSelenium:挂起导航到直接pdf下载
通过Docker Toolbox for Windows与selenium/standalone firefox调试容器一起使用RSelenium-一切正常:RSelenium:挂起导航到直接pdf下载,r,rselenium,R,Rselenium,通过Docker Toolbox for Windows与selenium/standalone firefox调试容器一起使用RSelenium-一切正常: docker run-d-v//c/test///home/seluser/Downloads-p 4445:4444-p 5901:5900 selenium/standalone firefox debug 设置firefox配置文件以直接下载pdf: fprof <- makeFirefoxProfile(list(brows
docker run-d-v//c/test///home/seluser/Downloads-p 4445:4444-p 5901:5900 selenium/standalone firefox debug
设置firefox配置文件以直接下载pdf:
fprof <- makeFirefoxProfile(list(browser.startup.homepage = "about:blank"
, startup.homepage_override_url = "about:blank"
, startup.homepage_welcome_url = "about:blank"
, startup.homepage_welcome_url.additional = "about:blank"
, browser.download.dir = "/home/seluser/Downloads"
, browser.download.folderList = 2L
, browser.download.manager.showWhenStarting = FALSE
, browser.download.manager.focusWhenStarting = FALSE
, browser.download.manager.closeWhenDone = TRUE
, browser.helperApps.neverAsk.saveToDisk = "application/pdf, application/octet-stream"
, pdfjs.disabled = TRUE
, plugin.scan.plid.all = FALSE
, plugin.scan.Acrobat = 99L))
如果我将VNC导入容器并查看浏览器中显示的内容,则文件已下载,但地址栏中没有任何内容
有什么想法吗?我假设这与httr/rselenium包没有从浏览器接收到某种“已加载”信号有关,但这超出了我的故障排除能力。此方法以前使用.jar文件selenium standalone server和RSelenium工作过
sessionInfo()和remDr$open()输出如下:
> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RSelenium_1.7.1
loaded via a namespace (and not attached):
[1] httr_1.2.1 R6_2.2.0 assertthat_0.1 tools_3.3.2 wdman_0.2.2 binman_0.1.0
[7] curl_2.3 Rcpp_0.12.9 jsonlite_1.2 caTools_1.17.1 openssl_0.9.6 bitops_1.0-6
[13] semver_0.2.0 XML_3.98-1.5
> remDr$open()
[1] "Connecting to remote server"
$rotatable
[1] FALSE
$raisesAccessibilityExceptions
[1] FALSE
$firefoxOptions
$firefoxOptions$args
list()
$firefoxOptions$profile
[1] "UEsDBBQACAgIAEwPW0oAAAAAAAAAAAAAAAAIAAAAcHJlZnMuanOlkU9LAzEQxe+C36HsSaFmwVv1tNBjbwoey2wy242dZsJM0v36JqJYimWV3vLn/R4z72VF2UbB4a7phadyM5pAUo5m5ANG2GGzXDTQc05PPUHYN/fPtzf5BzuXb/mIIt7hNgv9l52QbDlfiRpwzifPAeZcvnd2PAVicMZ5qUhbbVtFqtp2/fWrs/jA5FA2XlNxeZxTHyCUyUviI09vI4aXupMPu8IOQIp/5Qe2Wa8xsMSK1WDNofadJF9iR6SI0sWoJmBputO9UTjiK6+97j/jjpG8hZp/G92wXJw+sE2YHjQJwuE8zSJ+19KAQk/ofh8jUt75YNRCMMXVGSC6sO2ptLPCPdRSVqsq+wBQSwcII+hBcQsBAAD3AgAAUEsDBBQACAgIAEwPW0oAAAAAAAAAAAAAAAAHAAAAdXNlci5qc51WTW/bMAy971cMOW3AKqTretlOXdcBA4Z1aFDsKMgSbauRJU0fcfPvR/mjSRNHbndKbJMS+fj4yOjBUeugfLconGnxiXhWQvdf6oo0TLXMAQHNCgVi8eFtyZSH91/exJ2nYAFtrHEhudTAVKj7Z4JGG8ln/DWE1rg1qUOwxNbS19uz9Nky788U6CrU6Pjx8vK52xiwAybwR0AAHkB8l86HK4yFK0C34OJhuKbBvB4pr51pgHrupA3URU2DbJLLxXL6osAKTxAOfauvlfEwnc1oLUyrlWEC79KsSsDWpv1Tg14hWgmpaXeLQdng02W0MYKpGexhE4xRnoBzxnGjvVH7cB+n72WljUbUGmgKcKvu0edz8eC9RKtgkAsOfETcSgyUcsd8nfdVUq+JsaApPAZwmqlUzFczqExlvYt6+rIWCuHkBp8Z54DljBoz90gHysEFP4nEU6Wkt4ptQdycL1e/DDInlfbTtDG+Erf6j9RYX3++JBIvMvd3P9FjwQoTw+dCMb1... <truncated>
$appBuildId
[1] "20170125094131"
$version
[1] ""
$platform
[1] "LINUX"
$proxy
named list()
$command_id
[1] 1
$nativeEvents
[1] TRUE
$specificationLevel
[1] 0
$acceptSslCerts
[1] FALSE
$processId
[1] 3012
$webdriver.remote.sessionid
[1] "6263b5ab-9375-425e-aa00-8fc632dc492e"
$browserVersion
[1] "51.0.1"
$platformVersion
[1] "4.4.47-boot2docker"
$XULappId
[1] "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
$browserName
[1] "firefox"
$takesScreenshot
[1] TRUE
$javascriptEnabled
[1] TRUE
$takesElementScreenshot
[1] TRUE
$platformName
[1] "linux"
$cssSelectorsEnabled
[1] TRUE
$firefox_profile
[1] "UEsDBBQAAgAIAJRZW0oj6EFxCwEAAPcCAAAIAAAAcHJlZnMuanOlkU9LAzEQxe+C36HsSaFmwVv1tNBjbwoey2wy242dZsJM0v36JqJYimWV3vLn/R4z72VF2UbB4a7phadyM5pAUo5m5ANG2GGzXDTQc05PPUHYN/fPtzf5BzuXb/mIIt7hNgv9l52QbDlfiRpwzifPAeZcvnd2PAVicMZ5qUhbbVtFqtp2/fWrs/jA5FA2XlNxeZxTHyCUyUviI09vI4aXupMPu8IOQIp/5Qe2Wa8xsMSK1WDNofadJF9iR6SI0sWoJmBputO9UTjiK6+97j/jjpG8hZp/G92wXJw+sE2YHjQJwuE8zSJ+19KAQk/ofh8jUt75YNRCMMXVGSC6sO2ptLPCPdRSVqsq+wBQSwECHgAUAAIACACUWVtKI+hBcQsBAAD3AgAACAAAAAAAAAABACAAAAAAAAAAcHJlZnMuanNQSwUGAAAAAAEAAQA2AAAAMQEAAAAA"
$id
[1] "6263b5ab-9375-425e-aa00-8fc632dc492e"
>sessionInfo()
R版本3.3.2(2016-10-31)
平台:x86_64-w64-mingw32/x64(64位)
在以下环境下运行:Windows 7 x64(build 7601)Service Pack 1
区域设置:
[1] LC_COLLATE=英语_美国1252 LC_CTYPE=英语_美国1252
[3] LC_货币=英语_美国1252 LC_数字=C
[5] LC_时间=英语_美国1252
附加基本包:
[1] 统计图形GRUTILS数据集方法库
其他随附包裹:
[1] 硒铀1.7.1
通过命名空间加载(未附加):
[1] httr_1.2.1 R6_2.2.0资产认为_0.1工具_3.3.2 wdman_0.2.2宾曼_0.1.0
[7] curl_2.3 Rcpp_0.12.9 jsonlite_1.2 caTools_1.17.1 openssl_0.9.6 bitops_1.0-6
[13] semver_0.2.0 XML_3.98-1.5
>remDr$open()
[1] “连接到远程服务器”
$rotatable
[1] 假的
$raisesAccessibilityExceptions
[1] 假的
$firefoxOptions
$firefoxOptions$args
列表()
$firefoxOptions$profile
[1] "在这一领域中,我们可以用一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的研究来作为一个新的一个新的研究,他们的一个准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准准ZP/G92wXJw+sE2YH(2)这两个单词(2)是一个单词(2)是一个单词(2)是一个单词(2)是一个单词(2)是一个由一个研究小组提出的,一个是一个关于一个A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A 0AAHKB8L86HK4YFK0C34OJHUKBBVB4PR51PGHRUPA3URU2DBJLLXXL6Osaktxaofauvullfewnc1 oluyrewec79ksssdwpv1tg14wgmpaxeldNG02W0MYKpgexhe4xRnobzNgVvH7cb+N72wLjubugmgkCvU0edZ8EC9RktgKasoftcsgyuC8NFDVUQ+JSaappazWmQluzFczFczLvYt6+RiwcuKbP8z54DlJBOz90GHyseF4wkP4wkP4wkP4wkP4wkP4wkP4wkP4wkP4wkP6WkP7cYcYc1e+N72wkDfBfBdDdDdD。。。
$appBuildId
[1] "20170125094131"
$version
[1] ""
美元平台
[1] “LINUX”
$proxy
命名列表()
$command\u id
[1] 1
$nativeEvents
[1] 真的
$specificationLevel
[1] 0
$acceptSslCerts
[1] 假的
$processId
[1] 3012
$webdriver.remote.sessionid
[1] “6263b5ab-9375-425e-aa00-8fc632dc492e”
$browserVersion
[1] "51.0.1"
$platformVersion
[1] “4.4.47-boot2docker”
$XULappId
[1] “{ec8030f7-c20a-464f-9b0e-13a3a9e97384}”
$browserName
[1] “firefox”
$takesScreenshot
[1] 真的
$javascriptEnabled
[1] 真的
$takesElementScreenshot
[1] 真的
$platformName
[1] “linux”
$CSS选择器已启用
[1] 真的
$firefox\u配置文件
[1] "在这一领域中,我们可以用一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种新的技术来作为一种技术来作为一种非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非P/G92wXJw+sE2YHjQJwuE8zSJ+19KAQk/ofh8jUt75YNRCMMXVGSC6sO2ptLPCPdRSVqsq+WBQSWECHGAUAAACACUWVTKI+HBCQSBAAD3AGAACACAAAAAAAAAAAAAAAAAAACHJLZNQSWUGAAAAAAAAAAAAAAAAAAAAAAAQAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
$id
[1] “6263b5ab-9375-425e-aa00-8fc632dc492e”
我在使用最新版本的firefox(51.0.1)时遇到了同样的问题。
这是在windows计算机上出现的,问题似乎是pdfjs.disabled
标志。该问题在旧版本的firefox中不存在。标记为2.53.1
的Docker图像运行firefox 47。例如,如果可能,使用(在linux设备上)运行旧版本:
现在运行您的代码,我们看到:
fprof <- makeFirefoxProfile(list(browser.startup.homepage = "about:blank"
, startup.homepage_override_url = "about:blank"
, startup.homepage_welcome_url = "about:blank"
, startup.homepage_welcome_url.additional = "about:blank"
, browser.download.dir = "/home/seluser/Downloads"
, browser.download.folderList = 2L
, browser.download.manager.showWhenStarting = FALSE
, browser.download.manager.focusWhenStarting = FALSE
, browser.download.manager.closeWhenDone = TRUE
, browser.helperApps.neverAsk.saveToDisk = "application/pdf, application/octet-stream"
, pdfjs.disabled = TRUE
, plugin.scan.plid.all = FALSE
, plugin.scan.Acrobat = 99L))
library(RSelenium)
remDr <- remoteDriver(port = 4445L, extraCapabilities = fprof)
remDr$open()
remDr$navigate("http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=A&BorP=P&TID=BEL&CTRY=USA&DT=09/12/2015&DAY=D&STYLE=EQB")
> list.files("/home/john/test/")
[1] "eqbPDFChartPlus.cfm"
fprof我在使用最新版本的firefox(51.0.1)时遇到了同样的问题。
这是在windows计算机上出现的,问题似乎是pdfjs.disabled
标志。该问题在旧版本的firefox中不存在。标记为2.53.1
的Docker图像运行firefox 47。例如,如果可能,使用(在linux设备上)运行旧版本:
现在运行您的代码,我们看到:
fprof <- makeFirefoxProfile(list(browser.startup.homepage = "about:blank"
, startup.homepage_override_url = "about:blank"
, startup.homepage_welcome_url = "about:blank"
, startup.homepage_welcome_url.additional = "about:blank"
, browser.download.dir = "/home/seluser/Downloads"
, browser.download.folderList = 2L
, browser.download.manager.showWhenStarting = FALSE
, browser.download.manager.focusWhenStarting = FALSE
, browser.download.manager.closeWhenDone = TRUE
, browser.helperApps.neverAsk.saveToDisk = "application/pdf, application/octet-stream"
, pdfjs.disabled = TRUE
, plugin.scan.plid.all = FALSE
, plugin.scan.Acrobat = 99L))
library(RSelenium)
remDr <- remoteDriver(port = 4445L, extraCapabilities = fprof)
remDr$open()
remDr$navigate("http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=A&BorP=P&TID=BEL&CTRY=USA&DT=09/12/2015&DAY=D&STYLE=EQB")
> list.files("/home/john/test/")
[1] "eqbPDFChartPlus.cfm"
fprof非常感谢John-旧图像和旧firefox版本对我有用。非常感谢John-旧图像和旧firefox版本对我有用。
docker run -d -p 4445:4444 -p 5901:5900 -v /home/john/test:/home/seluser/Downloads selenium/standalone-firefox-debug:2.53.1
fprof <- makeFirefoxProfile(list(browser.startup.homepage = "about:blank"
, startup.homepage_override_url = "about:blank"
, startup.homepage_welcome_url = "about:blank"
, startup.homepage_welcome_url.additional = "about:blank"
, browser.download.dir = "/home/seluser/Downloads"
, browser.download.folderList = 2L
, browser.download.manager.showWhenStarting = FALSE
, browser.download.manager.focusWhenStarting = FALSE
, browser.download.manager.closeWhenDone = TRUE
, browser.helperApps.neverAsk.saveToDisk = "application/pdf, application/octet-stream"
, pdfjs.disabled = TRUE
, plugin.scan.plid.all = FALSE
, plugin.scan.Acrobat = 99L))
library(RSelenium)
remDr <- remoteDriver(port = 4445L, extraCapabilities = fprof)
remDr$open()
remDr$navigate("http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=A&BorP=P&TID=BEL&CTRY=USA&DT=09/12/2015&DAY=D&STYLE=EQB")
> list.files("/home/john/test/")
[1] "eqbPDFChartPlus.cfm"