R - Rselenium - setImplicitWaitTimeout gives error in Selenium Server 3.5.3 - r

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.

Related

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.

RStudio server RSelenium chrome server error (chrome not reachable) -- but works in SSH R terminal session

I am working with a remote server running Ubuntu 19.10. I'd like to initiate a non-headless chrome server and have developed the following script:
require(RSelenium)
eCaps <- list(chromeOptions = list(
args = c('--window-size=1280,800',
"--disable-extensions",
"--use-gl=swiftshader",
"--user-data-dir=/home/user/.config/google-chrome/Profile1",
"--remote-debugging-port=9222")
))
# Google Chrome version is 81.0.4044.138
rD <- rsDriver(browser = "chrome",
chromever = "81.0.4044.138",
extraCapabilities = eCaps,
port =
as.integer(base::sample(seq(32768,65535, by=1),1)))
remDr <- rD[["client"]]
remDr$navigate("https://stackoverflow.com/")
If I log into the box via SSH and start a new R session I can paste the above commands and Chrome server launches with the correct profile and saved passwords required for my purposes.
If, however, I run the exact same commands from RStudio Server this results in an error:
Selenium message:unknown error: Chrome failed to start: exited abnormally.
(chrome not reachable)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '4.0.0-alpha-2', revision: 'f148142cf8', time: '2019-07-01T21:30:10'
System info: host: 'xxx', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.3.0-59-generic', java.version: '1.8.0_252'
Driver info: driver.version: unknown
remote stacktrace: #0 0x55918478e189 <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.
Some thoughts:
I'm only running the selenium server in non-headless mode as I cannot seem to launch Chrome with a saved profile (and saved passwords) when using the --headless argument.
If I use the --headless argument as above then the sever can be sucessfully launched both from within RStudio Server and an R terminal session
It feels like a permissions issue, and I have experimented with changing the RStudio Server user to my same username that I SSH into the box with, as per these instructions. This does not resolve the problem.
version.string R version 3.6.1 (2019-07-05)
[Package RSelenium version 1.7.7 Index]
Any help appreciated!

R RSelenium/seleniumPipes Unknown error: cannot find Chrome binary

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.

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.

RSelenium error when connecting to server using Internet Explorer in windows

I try to use the RSelenium in windows with IE as browser as it seems there are some discrepancies with other browsers, and need some fixing with the newer versions.
I do as previously instructed in SO answers:
library(RSelenium)
startServer()
remDr <- remoteDriver(browser="internet explorer")
remDr$open()
remDr$open()
[1] "Connecting to remote server"
Selenium message:Unable to create new remote session. desired capabilities = Capabilities [{nativeEvents=true, browserName=internet explorer, javascriptEnabled=true, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
System info: host: 'CL5065F329EBF2', ip: '130.115.158.36', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_91'
Driver info: driver.version: InternetExplorerDriver
Error: Summary: SessionNotCreatedException
Detail: A new session could not be created.
class: org.openqa.selenium.SessionNotCreatedException
Further Details: run errorDetails method
Also when starting server or checking for servers I receive errors regarding deprecated use of the function.
For example:
startServer()
Warning message:
startServer is deprecated.
Users in future can find the function in file.path(find.package("RSelenium"), "example/serverUtils").
The sourcing/starting of a Selenium Server is a users responsiblity.
Options include manually starting a server see vignette("RSelenium-basics", package = "RSelenium")
and running a docker container see vignette("RSelenium-docker", package = "RSelenium")

Resources