.onLoad <- function(libname = find.package("seleniumpipes")
, pkgname = "seleniumpipes"){
op <- options()
op.seleniumPipes <- list(
seleniumPipes_SL = FALSE,
seleniumPipes_selOptions = list(),
seleniumPipes_sauceID = "",
seleniumPipes_display_screenshot = TRUE,
seleniumPipes_no_try = 3L,
seleniumPipes_no_try_delay = 5000L
)
toset <- !(names(op.seleniumPipes) %in% names(op))
if(any(toset)) options(op.seleniumPipes[toset])
invisible()
}
.e <- new.env(parent = emptyenv())
.e$sessionId <- list()
#' Implements the W3C webdriver specification.
#'
#' @section Package options:
#'
#' seleniumPipes uses the following \code{\link{options}} to configure
#' behaviour:
#'
#' \itemize{
#' \item \code{seleniumPipes_display_screenshot}: Logical value
#' indicating whether to display PNG returned by
#' \code{\link{takeScreenshot}} and
#' \code{\link{takeElementScreenshot}}. Defaults to TRUE
#'
#' \item \code{seleniumPipes_no_try}: An integer giving the number of
#' time to try calling an endpoint
#' on the Selenium Server. Defaults to 3 attempts
#'
#' \item \code{seleniumPipes_no_try_delay}: An integer detailing the
#' delay between attempts to call a failing endpoint on the Selenium
#' Server. Defaults to 5000 miliseconds = 5 seconds.
#'
#' \item \code{seleniumPipes_SL}: A logical value which acts as a flag
#' indicating whether SauiceLabs is being used for package testing.
#'
#' \item \code{seleniumPipes_selOptions}: A list used to store options
#' to pass to \code{\link{remoteDr}} when running tests.
#'
#' \item \code{seleniumPipes_sauceID}: A character used to store remote
#' session ids when running SauceLab tests on the package.
#' }
#' @docType package
#' @name seleniumPipes
NULL
#' Documetation of retry argument
#'
#' The ability to \code{retry} function code is enabled by default.
#' \code{retry} can be a logical value. If it is TRUE then
#' \code{noTry = getOption("seleniumPipes_no_try")} and
#' \code{delay = getOption("seleniumPipes_no_try_delay")}. If it is
#' FALSE the facility to have multiple trys of the function call is
#' removed. \code{retry} can also be a list with the following named
#' arguments that will override the values in \code{options}
#' \describe{
#' \item{"noTry"}{Integer indicating how many times to try the
#' function call}
#' \item{"delay"}{Integer indicating delay between trys of the
#' function call}
#' }
#' @name retry
#' @examples
#' \dontrun{
#' remDr <- remoteDr()
#' webElem <- remDr %>% go("http://www.google.com/ncr") %>%
#' findElement("name", "q")
#' # change the name of q with an 8 second delay
#' myscript <- "var myElem = arguments[0];
#' window.setTimeout(function(){
#' myElem.setAttribute('name','funkyname');
#' }, 8000);"
#' remDr %>% executeScript(myscript, args = list(webElem))
#'
#' newWebElem <- remDr %>% findElement("name", "funkyname")
#'
#'# > newWebElem <- remDr %>% findElement("name", "funkyname")
#'#
#'# Calling findElement - Try no: 1 of 3
#'#
#'# Calling findElement - Try no: 2 of 3
#'
#' newWebElem %>% getElementAttribute("name")
#'
#' # compare with a function that will fail (no element present)
#' rList <- list(noTry = 5, delay = 10)
#' remDr %>% findElement("id", "i am not here", retry = rList)
#' remDr %>% findElement("id", "i am not here", retry = FALSE)
#' }
NULL
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.