Provides a set of R bindings for the 'Selenium 2.0 WebDriver' (see < https://selenium.dev/documentation/en/> for more information) using the 'JsonWireProtocol' (see < https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol> for more information). 'Selenium 2.0 WebDriver' allows driving a web browser natively as a user would either locally or on a remote machine using the Selenium server it marks a leap forward in terms of web browser automation. Selenium automates web browsers (commonly referred to as browsers). Using RSelenium you can automate browsers locally or remotely.
This is a set of R Bindings for Selenium 2.0 Remote WebDriver, which you can download from http://selenium-release.storage.googleapis.com/index.html. This binding will not work with the 1.0 version of Selenium.
To install RSelenium
from CRAN, run:
install.packages("RSelenium")
To install the development version from GitHub, run:
# install.packages("devtools")devtools::install_github("ropensci/RSelenium")
To get started using RSelenium
you can look at the introduction vignette located in /doc/basics.html
once RSelenium
is installed or run
vignette("basics", package = "RSelenium")
or the basic vignette can be viewed here.
There is a second vignette dealing with running RSelenium on different browsers/OS locally and remotely which can be viewed at Driving OS/Browsers Local and Remote. Finally, you can read all about running a headless browser or running a normal browser on a headless server at Headless Browsing.
Use RSelenium
to test your Shiny Apps. Read the introductory tutorial here.
user <- "rselenium0"pass <- "*******************************"port <- 80ip <- paste0(user, ':', pass, "@ondemand.saucelabs.com")browser <- "firefox"version <- "25"platform <- "OS X 10.9"extraCapabilities <- list( name = "Test RSelenium", username = user, accessKey = pass) remDr <- remoteDriver$new( remoteServerAddr = ip, port = port, browserName = browser, version = version, platform = platform, extraCapabilities = extraCapabilities)
user <- "johnharrison" pass <- "*******************"port <- 80ip <- paste0(user, ':', pass, "@hub.browserstack.com")extraCapabilities <- list( "browser" = "IE", "browser_version" = "7.0", "os" = "Windows", "os_version" = "XP", "browserstack.debug" = "true") remDr <- remoteDriver$new( remoteServerAddr = ip, port = port, extraCapabilities = extraCapabilities)
xml2
, httr
and magrittr
so provides an alternative for users who are familiar with piping.Shiny
apps. In theory it works with any 'WebDriver' implementation, but it was only tested with 'PhantomJS'.The RSelenium package is licensed under the AGPLv3. The help files are licensed under the creative commons attribution, non-commercial, share-alike license CC-NC-SA.
As a summary, the AGPLv3 license requires, attribution, include copyright and license in copies of the software, state changes if you modify the code, and disclose all source code. Details are in the COPYING file.
executeScript
now passes a dummy argumentphantom()
function@field
and inline docstrings for methodsusing
argument of the findElement and findElements method from the remoteDriver class.using
argument of the findChildElement and findChildElements method from the webElement class.