Я использую Selenium, используя Docker изображение:RSelenium on docker: где скачать файлы?
require(RSelenium)
if (length(system("docker ps -l", intern = TRUE))<2)
try({system("docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0")})
Он работает, я могу подключиться к любому URL и навигации. Однако, когда я нажимаю кнопку, чтобы загрузить файл, он иногда сохраняет его (частично, сохраняется как xxxxxxx.csv.part
) до /tmp/mozilla_mozillaUser0
, а иногда и ... нигде, или, может быть, другое местоположение не могу найти ...
Есть ли причина для этого?
Кроме того, я попытался открыть драйвер с помощью
makeFirefoxProfile(list(browser.download.dir = "D:/temp"))
но он возвращает странные ошибки
Error in file(tmpfile, "rb") : cannot open the connection
In addition: Warning messages:
1: running command '"zip" -r9Xjq "C:\Users\rocks\AppData\Local\Temp\RtmpoPhjUb\file31076202d4f.zip" "C:\Users\rocks\AppData\Local\Temp\RtmpoPhjUb/firefoxprofile/prefs.js" ' had status 127
2: In file(tmpfile, "rb") :
cannot open file 'C:\Users\rocks\AppData\Local\Temp\RtmpoPhjUb\file31076202d4f.zip': No such file or directory
, где я могу понять, почему это desn't работа, учитывая, что все ссылки в окна, но мой селен работает в докер-контейнере или Ubuntu.
My Setup: R работает в Windows, и у меня есть изображение докеры Ubuntu, которое содержит сервер selenium.
EDIT:оказывается мой вопрос потому, что светлячок не был установлен на хост-машине (которая не нужна в теории). я установил вопрос, используя (вместо того, чтобы вызывать makeFirefoxProfile
):
fprof = structure(list(firefox_profile = "UEsDBBQAAAAIANJiVEobimJN8QAAABkCAAAIAAAAcHJlZnMuanOFkT9PwzAQxXckvkOUCSQnlliZkDqygcSITHyJTW3fyXdNIj49btqBoLTd7t57v/OfOzDkT8rQP9RfGafStRanFNDY1vpcq6rWDiNohnDM6t3Z5frx+f7uGt5jsJBfPUuZ8nQrHU0yQxHY4fThIL2JyeLTUNjeBIYLvINAkF+IuE0wlor3LZsR3nHneX+8fjwE8VSG6bn58aQMUfCdEY9J/+tPiabDWA5hBrs2LxmRJ8xrqeNRCcyyFD6Wl2lKQ3UuvwkGVf3Nk+1VtQBOYjihFIxPqlrlYO4grNExlc/jZsOZt8XIGzJ2AtKwZDBx2ewvUEsBAj8AFAAAAAgA0mJUShuKYk3xAAAAGQIAAAgAJAAAAAAAAAAgAAAAAAAAAHByZWZzLmpzCgAgAAAAAAABABgAzaOo9TCL0gHdkgMtLYvSAd2SAy0ti9IBUEsFBgAAAAABAAEAWgAAABcBAAAAAA=="), .Names = "firefox_profile")
remDr <- remoteDriver(extraCapabilities = ePrefs, port = 4445)
Спасибо! Мне удалось сопоставить диск. Однако при запуске вашей команды 'makeFirefoxProfile' я получаю это сообщение об ошибке: ' Ошибка в файле (tmpfile, «rb»): не удается открыть соединение Кроме того: Предупреждающие сообщения: 1: команда запуска «zip» -r9Xjq «C: \ Users \ rocks \ AppData \ Local \ Temp \ RtmpuI1GbG \ file21f47211278c.zip" "C: \ Users \ rocks \ AppData \ Local \ Temp \ RtmpuI1GbG/firefoxprofile/prefs.js" 'имеет статус 127 2: In file (tmpfile, "rb"): не может открыть файл 'C: \ Users \ rocks \ AppData \ Local \ Temp \ RtmpuI1GbG \ file21f47211278c.zip': Нет такого файла или каталога' – RockScience
Похоже, что firefox не установлен на моей главной машине. Кажется, он не нужен в теории! Это немного странно, чтобы создать профиль firefox на хосте, чтобы применить его к гостевому ... – RockScience
Если ваш HOST - это Windows-машина, вам понадобится почтовый индекс командной строки. Подробнее см. '? MakeFirefoxprofile'. Самый простой способ получить это - установить https://cran.r-project.org/bin/windows/Rtools/ – jdharrison