tests/manual/test-session.R

test_that("Creating sessions using shinytest2 AppDrivers works", {
  testthat::skip_if_not_installed("shinytest2")

  shiny_app <- shiny::shinyApp(ui = shiny::fluidPage(), server = function(input, output) {})

  app <- shinytest2::AppDriver$new(shiny_app)

  session <- selenider_session(driver = app)

  expect_equal(session$session, "chromote")
  expect_s3_class(session$driver, "ChromoteSession")
})

test_that("Creating sessions using RSelenium works", {
  skip_if_selenider_unavailable("selenium")

  session <- selenider_session("selenium", browser = "firefox")

  expect_true(is_selenium_server(session$server))
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()

  server <- create_selenium_server_internal("firefox", options = selenium_server_options(port = 4444L))

  session <- selenider_session(browser = "firefox", driver = server)

  expect_equal(find_port_from_server(server), 4444L)

  expect_true(is_selenium_server(session$server))
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()

  server <- create_selenium_server_internal("firefox", options = selenium_server_options(port = 4445L))

  session <- selenider_session(browser = "firefox", driver = list(server = server))

  expect_true(is_selenium_server(session$server))
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()

  server <- create_selenium_server_internal("firefox", options = selenium_server_options(port = 4446L))

  session <- selenider_session(browser = "firefox", driver = list(server))

  expect_true(is_selenium_server(session$server))
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()

  server <- create_selenium_server_internal("firefox", options = selenium_server_options(port = 4447L))
  client <- create_selenium_client_internal("firefox", options = selenium_client_options(port = 4447L))

  session <- selenider_session(driver = list(client, server))

  expect_true(is_selenium_server(session$server))
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()

  server <- create_selenium_server_internal("firefox", options = selenium_server_options(port = 4448L))
  client <- create_selenium_client_internal("firefox", options = selenium_client_options(port = 4448L))

  session <- selenider_session(driver = list(client = client, server = server))

  expect_true(is_selenium_server(session$server))
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()

  server <- create_selenium_server_internal("firefox", options = selenium_server_options(port = 4449L))
  client <- create_selenium_client_internal("firefox", options = selenium_client_options(port = 4449L))

  session <- selenider_session(driver = list(client))

  expect_null(session$server)
  expect_true(is_selenium_client(session$driver))
  expect_equal(session$session, "selenium")

  withr::deferred_run()
  server$kill()
})

Try the selenider package in your browser

Any scripts or data that you put into this service are public.

selenider documentation built on April 3, 2025, 5:51 p.m.