Запустите RSelenium Browser независимо от того, открыт / закрыт порт - PullRequest
0 голосов
/ 25 ноября 2018

Вопрос: есть ли функция, которая открывает браузер селена, если он еще не открыт, или закрывает текущий браузер, сбрасывает порт и перезапускает браузер?

Обоснование: я работаю с большими циклами в RSeleniumэто иногда приводит к сбою, поэтому иногда я не знаю, открыт ли порт или открыт браузер в циклическом коде.Мне бы хотелось, чтобы программа запуска RSelenium запускала браузер независимо от того, открыт ли он или используется ли порт.

Попытка: я попробовал этот подход с tryCatch (), но я все еще получаю ошибку wdman, что порт открыт, если я пытаюсь запустить его дважды:

browserpreference <- "chrome"
tryCatch({rD <- rsDriver(port = 4444L, browser = paste0(browserpreference))}
  ,error=function(rD,remDr){
          try(remDr$close(), silent=T)
          try(rD$server$stop(),silent=T)
          try(suppressWarnings(rm(rD, envir = .GlobalEnv)), silent=T)
          try(suppressWarnings(rm(remDr, envir = .GlobalEnv)), silent=T)
          gc()
          rD <- rsDriver(port = 4444L, browser = paste0(browserpreference))
        })

Если я попробую это дваждыЯ получаю эту ошибку:

Error in wdman::selenium(port = port, verbose = verbose, version = version,  : 
  Selenium server signals port = 4444 is already in use.

Спасибо!

...