J'utilise le code suivant dans RSelenium pour ouvrir un navigateur. Après avoir fermé le navigateur, ou même fermé le gestionnaire en exécutant remDr $ close (), le port est toujours utilisé. Je dois aller sur le terminal et tuer manuellement le processus afin que le même port devienne disponible. Existe-t-il un moyen automatisé pour que RSelenium libère le port une fois qu'il a fini de gratter?
Voici donc mon code:
library(RSelenium)
rD <- rsDriver(verbose = FALSE,port=4444L)
remDr <- rD$client
remDr$close()
Merci
Le processus est composé de deux parties: un serveur (le serveur Selenium) et un client (le navigateur que vous lancez). La méthode close
de la classe remoteDriver ferme le client (le navigateur). Le serveur doit également être arrêté lorsque vous avez terminé.
Pour arrêter le serveur lorsque vous avez terminé:
library(RSelenium)
rD <- rsDriver(verbose = FALSE,port=4444L)
remDr <- rD$client
remDr$close()
Maintenant, arrêtez explicitement le serveur:
rD$server$stop()
ou si l'objet rD
est supprimé, le serveur sera arrêté lors du garbage collection:
library(RSelenium)
rD <- rsDriver(verbose = FALSE,port=4444L)
remDr <- rD$client
remDr$close()
rm(rD)
gc()
Ce qui a fonctionné pour moi, ce n’est pas d’appeler du tout, mais d’appeler juste.
rD <- rsDriver(port = 4444L)
remDr <- rD[["client"]]
remDr$close()
rm(rD)
gc()
EDIT: Nevermind - cela a fonctionné plusieurs fois la semaine dernière, puis n'a plus fonctionné.