web-dev-qa-db-fra.com

impossible d'exécuter rsDriver (connexion refusée)

Je ne peux aller nulle part avec R Selenium. Voici la première étape et ma sortie:

library(RSelenium)
rD <- rsDriver()
# checking Selenium Server versions:
#   BEGIN: PREDOWNLOAD
# BEGIN: DOWNLOAD
# BEGIN: POSTDOWNLOAD
# checking chromedriver versions:
#   BEGIN: PREDOWNLOAD
# BEGIN: DOWNLOAD
# BEGIN: POSTDOWNLOAD
# checking geckodriver versions:
#   BEGIN: PREDOWNLOAD
# BEGIN: DOWNLOAD
# BEGIN: POSTDOWNLOAD
# checking phantomjs versions:
#   BEGIN: PREDOWNLOAD
# BEGIN: DOWNLOAD
# BEGIN: POSTDOWNLOAD
# [1] "Connecting to remote server"
# Error in checkError(res) : 
#   Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused
# In addition: Warning message:
#   In rsDriver() : Could not determine server status.

Qu'est-ce que j'ai raté ?

9
Moody_Mudskipper

Lorsque vous essayez d'exécuter la checkForServer() obsolète, Selenium propose deux options:

  • utiliser rsDriver
  • utiliser Docker

voir:

RSelenium::checkForServer()
# Error: checkForServer is now defunct. Users in future can find the function in 
# file.path(find.package("RSelenium"), "examples/serverUtils"). The
# recommended way to run a Selenium server is via Docker. Alternatively
# see the RSelenium::rsDriver function.

Tout le mondesembleà avoir des problèmes avec rsDriver et Docker est l'option recommandée, nous allons donc suivre cette voie:

  • installer docker
  • l'exécuter, redémarrer l'ordinateur comme demandé
  • extraire l'image en exécutant en ligne de commande: docker pull Selenium/standalone-firefox (ou chrome au lieu de firefox) ou dans R Shell('docker pull Selenium/standalone-firefox')
  • démarrer le serveur en exécutant en ligne de commande: docker run -d -p 4445:4444 Selenium/standalone-firefox ou dans R Shell('docker run -d -p 4445:4444 Selenium/standalone-firefox')
  • Exécutez ensuite remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox'"). Le doc suggère quelque chose de différent avec une machine virtuelle mais je n'ai pas pu le faire fonctionner.

Avec cela je me suis mis, voici mon code:

Shell('docker run -d -p 4445:4444 Selenium/standalone-firefox')
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox")
remDr$open()
remDr$navigate("http://www.google.com/ncr")
remDr$getTitle()
# [[1]]
# [1] "Google" 

Le doc pour plus d'informations:

19
Moody_Mudskipper

Au cas où cela serait toujours utile, je rencontrais le même problème aujourd'hui et j'ai pu le résoudre en installant un Java (Kit de développement Java SE 11.0.1).

J'obtenais un message d'erreur de mon ordinateur à cet effet, ainsi que la même erreur R que celle mentionnée dans cette question, et elle l'a corrigé.

Pour un exemple reproductible, j'ai pu reproduire ce tutoriel .

sessionInfo () R version 3.4.4 (2018-03-15) Plate-forme: x86_64-Apple-darwin15.6.0 (64 bits) Sous: macOS High Sierra 10.13.5

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] fr_CA.UTF-8/fr_CA.UTF-8/fr_CA.UTF-8/C/fr_CA.UTF-8/fr_CA.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RSelenium_1.7.5

loaded via a namespace (and not attached):
[1] Rcpp_0.12.17     XML_3.98-1.11    binman_0.1.1     assertthat_0.2.0 rappdirs_0.3.1   bitops_1.0-6    
[7] R6_2.2.2         jsonlite_1.5     semver_0.2.0     httr_1.3.1       curl_3.2         xml2_1.2.0      
[13] subprocess_0.8.3 tools_3.4.4      wdman_0.2.4      yaml_2.1.18      compiler_3.4.4   caTools_1.17.1  
[19] openssl_1.0.1 
2
pollytatouin