R RSelenium/seleniumPipes Unknown error: cannot find Chrome binary - r

I try to connect with Selenium in R using the Chrome browser on Win10.
I installed Chrome 74.0.3729.61 and added the chrome.exe path to the Environment Variables.
devtools::install_github("johndharrison/seleniumPipes")
devtools::install_github("ropensci/Rselenium")
#start selenium
selServ <- selenium()
# check ports
selServ$log()$stderr
# conect using port
sel <- remoteDr(browserName = "chrome", port = 4567)
gives me the following error message:
Called newSession - Try no: 1 of 3
Called newSession - Try no: 2 of 3
Called newSession - Try no: 3 of 3
Error detected:
Response status code : 500
Selenium Status code: 13
Selenium Status summary: UnknownError
Selenium Status detail: An unknown server-side error occurred while processing the command.
Selenium message: unknown error: cannot find Chrome binary
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729#{#29}),platform=Windows NT 10.0.17134 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 40 milliseconds
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: ... , os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_201'
Driver info: driver.version: unknown
Please check the response with errorResponse()
Please check the content returned with errorContent()
I found some guidance for Python (Cannot find Chrome binary with Selenium in Python for older versions of Google Chrome) and c# (Selenium WebDriver - Could not find Chrome binary), however, I do not know how to implement it in R.

IMHO you need to download and run chomedriver.exe(if you are using Windows 10, as you mentioned) before to use selenium.
Could you try below solution?
Solution 1. on command window
java -Dwebdriver.chrome.driver="C:/{yourPath}/selenium/chromedriver.exe" -jar "C:/{yourPath}/selenium/selenium-server-standalone-3.141.59.jar" -port 4567
or
Solution 2. direct use R script
rstudioapi::terminalExecute('java -Dwebdriver.chrome.driver="C:/{yourPath}/selenium/chromedriver.exe" -jar "C:/{yourPath}/selenium/selenium-server-standalone-3.141.59.jar" -port 4567')
Yes, both are same command exactly. You are able to use anyone you want.

Related

Rselenium driver error : driver.version: unknown, SessionNotCreatedException

It's been a week struggling with this. I've checked every version of chrome, chrome driver, geckodriver, Selenoum.jar, even R. I also replaced a number of rselenium folders in C drive.
Why R cannot sense the Chromedriver and returns SessionNotCreatedException error?
How can I solve this? I'm really desperate cause this is a part of my final assignment for uni,
and I cannot even start it.
I just want to go with Chrome, not switching to Mozila's Firefox.
OS : Windows 11
R version : 4.1.3
IDE : Rstudio
Chrome : 107.0.5304.107
geckodriver : geckodriver-v0.31.0-win64
chromedrvier : 107.0.5304.62
Selenium : selenium-server-standalone-4.0.0-alpha-1
JAVA : java version "17.0.4.1"
R code ↓
library(rvest)
library(dplyr)
library(httr)
library(RSelenium)
remDr = remoteDriver(
remoteServerAddr="localhost",
port=4445L,
browserName="chrome")
remDr$open()
R error message ↓
Selenium message:Unable to create new service: ChromeDriverService
Build info: version: '4.0.0-alpha-1', revision: 'd1d3728cae', time: '2019-04-24T16:15:24'
System info: host: 'JIMMMMM', ip: 'xxx.xxx.x.x', os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.4.1'
Driver info: driver.version: unknown
Error: Summary: SessionNotCreatedException
Detail: A new session could not be created.
Further Details: run errorDetails method
cmd code ↓
C:\Windows\System32>cd C:\r-selenium
C:\r-selenium>java -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-4.0.0-alpha-1.jar -port 4445
15:50:22.250 INFO [GridLauncherV3.parse] - Selenium server version: 4.0.0-alpha-1, revision: d1d3728cae
15:50:22.384 INFO [GridLauncherV3.lambda$buildLaunchers$3] - Launching a standalone Selenium Server on port 4445
15:50:22.816 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
15:50:23.195 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4445
15:50:35.377 INFO [ActiveSessionFactory.apply] - Capabilities are: {
"browserName": "chrome",
"javascriptEnabled": true,
"nativeEvents": true,
"version": ""
}
15:50:35.387 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.grid.session.remote.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
15:50:40.294 INFO [ActiveSessionFactory.apply] - Capabilities are: {
"browserName": "chrome",
"javascriptEnabled": true,
"nativeEvents": true,
"version": ""
}
15:50:40.297 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.grid.session.remote.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Checked versions of every programm needed.
Checked binman::list_versions("chromedriver") to match the versions of Chrome driver and Chrome.
Reinstalled rsellenium library, Geckodriver, Chromedriver, Selenium.
Problem solved. It was all about directories...
I set my working directory as C:\r-selenium, but chromedriver and gecko were C:\r-selenium\chromedriver_win32,
C:\r-selenium\geckodriver-v0.17.0-win64 for each.

RSelenium not opening browser

I am trying to simply open a browser with RSelenium with the following code:
library(RSelenium)
remDr <- rsDriver(
port = 4446L,
browser = "chrome",
chromever = "87.0.4280.88"
)
remDr$open()
I am receiving the following error:
Selenium message:Timed out waiting for driver server to start.
Build info: version: '4.0.0-alpha-2', revision: 'f148142cf8', time: '2019-07-01T21:30:10'
System info:os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '15.0.1'
Driver info: driver.version: unknown
Could not open chrome browser.
Client error message:
Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command
Further Details: run errorDetails method
Check server log for further details.
I have checked and my chrome version is the following: Version 87.0.4280.141. When I run binman::list_versions("chromedriver"), I have the following versions available "87.0.4280.88" "88.0.4324.27". I have tried both of these versions in the script above but I receive the same error. I am not sure what else to try so if anyone has any suggestions, I would greatly appreciate it. I am running this on a Mac.

Unable to open Gecko Driver with RSelenium package in R without using Docker

I am unable to connect to the Selenium server.
I'm using RSelenium to automate data collection for a school project.
What baffles me is that it has worked every day for two weeks now, but I restarted my macbook so had to reconnect to the Selenium server, and now I can't make it run.
I've tried reinstalling firefox, the geckodriver, the selenium standalone server, and tried running it with chrome.
I've put this in the terminal:
java -jar /Users/x/data/selenium-server-standalone-3.141.59.jar -port 5556
This is what I do in R:
remDr <- RSelenium::remoteDriver(extraCapabilities = list(marionette = TRUE), port=5556)
remDr$open()
I get this error message when running remDr$Open():
Selenium message:Unable to create new service: GeckoDriverService
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'MacBook-Pro-3.local', ip: '[sensitive info removed]', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '11.0.2'
Driver info: driver.version: unknown
Error: Summary: SessionNotCreatedException
Detail: A new session could not be created.
Further Details: run errorDetails method
I am able to run it with Docker and Tight VNC, but sadly this throws a lot of errors as I need to use the debug version for my data collection.
Hmmm never seen this type of error before. #jdharrison can you look at this?

Using RSelenium to open chrome browser, getting "Unable to create new service: ChromeDriverService" message and error

As the title says, I've got a script written using RSelenium to automate web navigation, using chrome as the browser. This script has worked fine for months now, but today when I tried to run it, I got the following message:
Selenium message:Unable to create new service: ChromeDriverService
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-
02T20:13:22.693Z'
System info: host: 'LAPTOP-22QM8890', ip: '192.168.133.65', os.name:
'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_171'
Driver info: driver.version: unknown
Could not open chrome browser.
Client error message:
Summary: SessionNotCreatedException
Detail: A new session could not be created.
Further Details: run errorDetails method
Check server log for further details.
I'm pretty sure that I have installed the latest versions of Chrome and ChromeDriver, but this has not changed anything. I'm at a loss as to what caused this error to spontaneously appear today.
If you are using windows, just go inside C:\Users\Jeff\AppData\Local\binman and delete all directories inside (for me 4 directories including seleniumserver and geckodriver). Then just open RStudio and run eg
library(RSelenium)
rD <- rsDriver(browser = "chrome")
remDr <- rD$client
remDr$navigate("https://google.com")
Good luck.

R - Rselenium - setImplicitWaitTimeout gives error in Selenium Server 3.5.3

This Rselenium command works when using Selenium Server 3.4.0 and Gecko Driver v0.18.
remDr$setImplicitWaitTimeout(milliseconds = 15000)
Here's the relevant code block:
remDr <- remoteDriver()
remDr$open(silent = TRUE)
remDr$setImplicitWaitTimeout(milliseconds = 15000)
But when running Selenium Server 3.5.3 with either Gecko v0.18 or v0.19, the same code generates this error:
Selenium message:POST /session/91a1f43f-18b3-4e11-92a9-d738cd4049a4/timeouts/implicit_wait did not match a known command
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z'
System info: host: 'pc', ip: 'xxx.xxx.x.x', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_144'
Driver info: driver.version: unknown
Error: Summary: UnknownCommand
Detail: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource.
class: org.openqa.selenium.UnsupportedCommandException
Further Details: run errorDetails method
Firefox: 55.0.3 (64-bit)
I've looked for package updates in the Rselenium Github repo and have searched for other info.
Not sure if I'm missing something or should report a bug.
The implementation of implicit wait is now slightly different. Try
remDr <- remoteDriver()
remDr$open()
remDr$setTimeout(type = "implicit", milliseconds = 5000)
You may also wish to set the pageload timeout
remDr$setTimeout(type = "page load", milliseconds = 5000)
The SetTimeouts command maps to the Marionette setTimeouts command, which makes geckodriver compatible with Firefox 56 and greater.
from their release information on github. you should use firefox 56 or greater instead of 55.
here is the link.

Resources