简体   繁体   English

RSelenium 无法打开浏览器

[英]RSelenium fails to open browser

I wan't to use Selenium for webscrapping from R.我不想使用 Selenium 从 R 进行网页抓取。

  • My Windows version: Windows 11, 21H2我的Windows版本:Windows 11、21H2
  • I have the latest Java update.我有最新的 Java 更新。 (1.8.0_351) Commenting it since I've seen it could be a fix in this cases. (1.8.0_351) 评论它因为我已经看到它在这种情况下可能是一个修复。

However, when defining the driver object I get the following error:但是,在定义驱动程序 object 时出现以下错误:

Could not open chrome browser.
Client error message:
Undefined error in httr call. httr output: Failed to connect to localhost port 14415: Connection refused
Check server log for further details.
Warning message:
In rsDriver(browser = "chrome", chromever = "109.0.5414.74", verbose = FALSE,  :
  Could not determine server status. 

When checking the server log for further details I get:在检查服务器日志以获取更多详细信息时,我得到:

Could not find or load main class c(-Dwebdriver.chrome.driver=\"C:\\\\Users\\\\xherr\\\\AppData\\\\Local\\\\binman\\\\binman_chromedriver\\\\win32\\\\109.0.5414.74.chromedriver.exe\","

Here's my code:这是我的代码:

library(tidyverse)
library(RSelenium)
library(netstat)
library(Rcpp)
library(wdman)

binman::list_versions("chromedriver")


rdriver <- rsDriver(browser = "chrome",
                    chromever = "109.0.5414.74",
                    verbose = TRUE,
                    port = free_port())

rdriver$server$log()

Does anyone know how to fix this?有谁知道如何解决这一问题? Thank you very much非常感谢你

I recommend 'remoteDriver' instead of 'rsDriver'我推荐 'remoteDriver' 而不是 'rsDriver'

binman::list_versions(appname = 'chromedriver')
driver<-wdman::chrome(port=4576L, version = '108.0.5359.71')

# first data
remote<-remoteDriver(port=4576L, browserName='chrome')
remote$open()

I have experienced exactly the same issue since I upgraded to chromedriver 109.0.5414.74.自升级到 chromedriver 109.0.5414.74 后,我遇到了完全相同的问题。 It might be a problem with the latest chromedriver version.可能是最新的 chromedriver 版本有问题。

The only way I make rsDriver to run again was by replacing in your code 109.0.5414.74 by 108.0.5359.71.我让 rsDriver 再次运行的唯一方法是将您的代码 109.0.5414.74 替换为 108.0.5359.71。

Try:尝试:

library(tidyverse)
library(RSelenium)
library(netstat)
library(Rcpp)
library(wdman)
    
binman::list_versions("chromedriver")
    
    
rdriver <- rsDriver(browser = "chrome",
chromever = "108.0.5359.71",
verbose = TRUE,
port = free_port())
    
rdriver$server$log()

The chrome driver version "109.0.5414.74" now includes an additional file that confuses wdman/binman. chrome 驱动程序版本“109.0.5414.74”现在包含一个混淆 wdman/binman 的附加文件。 Using an earlier version like chromever = "108.0.5359.71" will work.使用像chromever = "108.0.5359.71"这样的早期版本就可以了。 Alternatively you can use the newer drivers by finding your chrome driver path using selenium(retcommand = T) and deleting the LICENSE.chromedriver files或者,您可以通过使用 selenium(retcommand = T) 查找您的 chrome 驱动程序路径并删除 LICENSE.chromedriver 文件来使用较新的驱动程序

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM