tests/testthat/test-properties.R

test_that("selenider_element properties work", {
  session <- selenider_test_session()

  open_url("https://ashbythorpe.github.io/selenider/dev/articles/test-site.html")

  expect_equal(elem_name(s("#toggle_div")), "button")
  expect_equal(elem_name(s(".actions-form")), "form")

  expect_equal(elem_text(s("#toggle_div")), "Toggle div")
  expect_equal(elem_value(s("input[type='submit']")), "Submit")

  expect_equal(elem_attr(elem_find(find_elements(s(".actions-test"), "input"), has_value("Submit")), "type"), "submit")
  expect_equal(elem_attr(elem_children(s(".actions-form"))[[1]], "class"), "actions-test")

  expect_mapequal(elem_attrs(find_element(s(".actions-test"), "input")), list(type = "text", class = "actions-input"))

  expect_equal(elem_value(s(".actions-input")), "")

  elem_set_value(s(".actions-input"), "Input")

  expect_equal(elem_value(s(".actions-input")), "Input")

  elem_set_value(s(".actions-input"), 10)

  expect_equal(elem_value(s(".actions-input"), ptype = integer()), 10L)

  # Computed style
  expect_true(elem_css_property(s("#form-output"), "color") %in% c("rgb(255, 0, 0)", "rgba(255, 0, 0, 1)"))

  elem_select(s("#selection"), 1)

  expect_equal(elem_value(s("#selection")), "1")

  elem_select(s("#multiple-selection"), c(2, 3))

  expect_equal(elem_value(s("#multiple-selection")), c("2", "3"))

  editable <- s("#editable-text")

  expect_equal(elem_value(editable), "Editable text")

  elem_set_value(editable, "my text")

  expect_equal(elem_value(editable), "my text")
})

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.