I am using Rselenium and today I got a weird issue. It was working until last friday but now it got crashed. I have updated main packages and also java but it is not working. This is what I get when I use next code:
library(wdman)
library(RSelenium)
library(xml2)
library(selectr)
library(httr)
library(jsonlite)
#start RSelenium
remDr <- rsDriver(
port = 4445L,
browser = "firefox"
)
#remDr$open()
remDr <- remoteDriver(port = 4445L,browser = "firefox")
When running the first remDr for rsDriver I got this:
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
Error in (function (url, platform, history, appname, platformregex = platform, :
unused argument (fileregex = "\\.(gz|zip)$")
And for the second remDr, it works but trying to use open it fails and shows next message:
remDr$open()
[1] "Connecting to remote server"
Error in checkError(res) :
Undefined error in httr call. httr output: Failed to connect to localhost port 4445: Connection refused
How can I solve these issues? This is the session info:
sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
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] jsonlite_1.8.4 httr_1.4.4 selectr_0.4-2 xml2_1.3.3 RSelenium_1.7.9
[6] wdman_0.2.6
loaded via a namespace (and not attached):
[1] Rcpp_1.0.9 binman_0.1.2 assertthat_0.2.1 rappdirs_0.3.3 bitops_1.0-7
[6] R6_2.5.1 semver_0.2.0 magrittr_2.0.3 stringi_1.7.6 curl_4.3.2
[11] tools_4.1.2 stringr_1.4.0 yaml_2.3.5 compiler_4.1.2 caTools_1.18.2
SOLUTION: DELETE the LICENSE.chromedriver
file.
You can find the file location which is printed in the output of:
library(wdman)
selenium(retcommand=T)
#delete the LICENSE.chromedriver file
To DELETE the file: On linux terminal:(you may need to change the version)
sudo rm -rf /myusername/.local/share/binman_chromedriver/linux64/110.0.5481.30/LICENSE.chromedriver
Note: you must be using the apt version rather than snap if using linux: https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-deb-apt-ubuntu-22-04
To DELETE the file: On mac terminal:(you may need to change the version)
sudo rm /Users/myusername/Library/Application Support/binman_chromedriver/mac64/110.0.5481.30/LICENSE.chromedriver
To DELETE the file: In windows R console:(you may need to change the version)
#replace WINDOWSUSERNAME with your windows username and chromedriver version
port <- 4444L
unlink("C:/Users/WINDOWSUSERNAME/AppData/Local/binman/binman_chromedriver/win32/110.0.5481.30/LICENSE.chromedriver")
library(RSelenium)
rd <- rsDriver(port=as.integer(port),browser="firefox")
###if you still get Selenium server signals port = 4444 is already in use.
you can reset the port using the below command in windows:
#clear busy port in windows
port <- 4444L
tintern <- system("netstat -a -n -o",intern=T)
irow1 <- grep(as.character(port),tintern)
if(length(irow1)>0){
irow1 <- irow1[1]
if(!is.na(irow1)){
irow1 <- irow1[1]
trow <- tintern[irow1]
trow <- trimws(rm_white(trow))
tpid <- word(trow,-1,-1)
system(paste0("taskkill /pid ",tpid," /F"))
}
}