R:Selenium 服务器信号端口 = 4567 已被使用

R: Selenium server signals port = 4567 is already in use

看来这是一个反复出现的问题,但我还没有找到解决问题的方法。

我运行宁以下:

link <- 'https://www.google.com/'

rD <- rsDriver(verbose = TRUE,
               port=4567L, 
               browserName = 'chrome', 
               chromever = '83.0.4103.39',
               check = TRUE)
remDr <- rD$client
remDr$navigate(link)

当我 运行 第一次出现错误时:

错误 wdman::selenium(port = port, verbose = verbose, version = version, : Selenium 服务器信号端口 = 4567 已被使用。

我的 chrome 驱动程序位于与我的 R 项目相同的文件夹中。

我该如何进行这项工作? 我确实按照文档进行操作,但似乎没有任何效果!!!

如有任何帮助,我们将不胜感激!

Br

我最近遇到了这个问题,我只是分配了一个随机门户号码,即 port= 4837L,然后重新运行代码,它对我来说工作正常。希望有用!

执行以下所有三个操作应该可以涵盖大多数情况:

remDr$close()
rm(rD)
gc()

您有两个选项可以终止进程

## Option 1
system("taskkill /im java.exe /f", intern=FALSE, ignore.stdout=FALSE)

## Option 2
system(paste0("Taskkill /F /T" ," /PID ", pid = rD$server$process$get_pid()))

这些已在 Windows 中得到验证。请有人检查并查看 OSx/Unix/Linux。

我发现这对我来说效果很好,因此您不必继续重新分配随机端口号...

library(netstat)

rD <- rsDriver(verbose = TRUE,
               port= free_port(), 
               browserName = 'chrome', 
               chromever = '83.0.4103.39',
               check = TRUE)

我知道这是一个老问题。但我认为这里的答案并不能解决问题的根本原因。因此,对于其他读者,这里是我的答案。

在代码末尾添加以下命令,以停止服务器并释放到端口 4567。

rD[["server"]]$stop()