⚠️There's a newer version (1.7.9) of this package. Take me there.

RSelenium

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.

Install

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.

Summary of Vignettes

  1. Basics
  2. Driving OS/Browsers Local and Remote
  3. Testing Shiny Apps
  4. Headless Browsing
  5. Docker
  6. Internet Explorer
  7. Orange County R Users Group Webinar

Test Shiny Apps

Use RSelenium to test your Shiny Apps. Read the introductory tutorial here.

Use Sauce Labs and BrowserStack

Sauce Labs

user <- "rselenium0"
pass <- "*******************************"
port <- 80
ip <- 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
)

BrowserStack

user <- "johnharrison" 
pass <- "*******************"
port <- 80
ip <- 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
)

Related Work

  • seleniumPipes: A lightweight implementation of the w3c webdriver specification. It has been built utilising xml2, httr and magrittr so provides an alternative for users who are familiar with piping.
  • webdriver: A client for the 'WebDriver API'. It allows driving a (probably headless) web browser, and can be used to test web applications, including Shiny apps. In theory it works with any 'WebDriver' implementation, but it was only tested with 'PhantomJS'.
  • rwebdriver: R bindings to the Webdriver API
  • rdom: Render and parse the DOM from R via phantomjs.

License

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.


Copy Link

Version

Down Chevron

Install

install.packages('RSelenium')

Monthly Downloads

4,996

Version

1.7.7

License

AGPL-3

Maintainer

Last Published

February 3rd, 2020

Functions in RSelenium (1.7.7)