Windows10下使用RSelenium报错:Unable to create new service: ChromeDriverService
解决RSelenium无法创建ChromeDriverService的问题
我一眼就发现你在CMD里执行的命令有个明显的小错误——重复写了两次java!这会直接导致命令解析失败,Selenium Server没法正确加载ChromeDriver。咱们先把这个核心问题搞定,再排查其他可能的坑。
第一步:修正CMD启动命令
你原来的命令是:
java -Dwebdriver.chrome.driver="D:\Selenium\chromedriver.exe" java -jar D:\Selenium\selenium-server-standalone-3.11.0.jar
这里的第二个java完全多余,正确的写法是把所有参数放在同一个java命令后面:
java -Dwebdriver.chrome.driver="D:\Selenium\chromedriver.exe" -jar D:\Selenium\selenium-server-standalone-3.11.0.jar
执行这个修正后的命令,确保CMD里没有报错,能看到Selenium Server正常启动的日志(比如显示“Started org.openqa.selenium.grid.selenium.GridLauncherV3”这类内容)。
第二步:检查版本匹配(重中之重)
如果修正命令后还是报错,大概率是版本不兼容在搞鬼:
- Chrome浏览器版本必须和chromedriver版本完全对应(比如Chrome是114.x,chromedriver也要下载114.x的版本)。你可以在Chrome的「设置→关于Chrome」里查看版本,再找对应版本的chromedriver(注意别下错Windows版本)。
- Selenium Server版本和chromedriver也要兼容,你用的是3.11.0的Selenium Server,尽量不要搭配太新的chromedriver(比如Chrome 100+的版本可能和3.11.0不兼容,建议用Chrome 90左右的版本,或者把Selenium Server升级到3.x系列的最新版)。
第三步:R代码的小优化
你的R代码本身没问题,但可以加个小等待,确保连接前Selenium Server已经完全初始化:
remDr <- remoteDriver(browserName = "chrome", remoteServerAddr = "localhost", port = 4444L) # 等待2秒让Server完成启动初始化 Sys.sleep(2) remDr$open()
额外排查点
- 确认
D:\Selenium\chromedriver.exe这个路径完全正确,没有拼写错误,而且chromedriver.exe确实存在。 - 如果Chrome安装在非默认路径,可能需要在CMD命令里额外指定Chrome的位置,比如:
java -Dwebdriver.chrome.driver="D:\Selenium\chromedriver.exe" -Dwebdriver.chrome.bin="C:\Program Files\Google\Chrome\Application\chrome.exe" -jar D:\Selenium\selenium-server-standalone-3.11.0.jar
把路径换成你实际的Chrome安装地址就行。
按照这个步骤来,应该能解决你遇到的「无法创建ChromeDriverService」的问题啦!
内容的提问来源于stack exchange,提问作者vivi
相关产品推荐
相关产品推荐

