Nothing
test_that("has print method", {
skip_if_no_chromote()
bullets <- read_html_live(html_test_path("bullets"))
expect_snapshot(bullets)
})
test_that("can find multiple elements", {
skip_if_no_chromote()
bullets <- read_html_live(html_test_path("bullets"))
# can extract from page
ul <- bullets %>% html_elements("ul")
expect_length(ul, 1)
# or with xpath
ul <- bullets %>% html_elements(xpath = ".//ul")
expect_length(ul, 1)
# can extract from other elements
li <- ul %>% html_elements("li")
expect_length(li, 4)
})
test_that("can extract tables", {
skip_if_no_chromote()
page <- read_html_live(html_test_path("table"))
table <- page %>% html_table() %>% .[[1]]
expect_equal(dim(table), c(2, 3))
})
test_that("can find single element", {
skip_if_no_chromote()
dynamic <- read_html_live("https://rvest.tidyverse.org/articles/starwars.html")
static <- read_html("https://rvest.tidyverse.org/articles/starwars.html")
expect_equal(html_element(dynamic, "p"), html_element(static, "p"))
expect_equal(html_element(dynamic, "xyz"), html_element(static, "xyz"))
})
test_that("can click a button", {
skip_if_no_chromote()
sess <- read_html_live(html_test_path("click"))
sess$click("button")
expect_equal(html_text(html_element(sess, "p")), "clicked")
sess$click("button", 2)
expect_equal(html_text(html_element(sess, "p")), "double clicked")
})
test_that("can scroll in various ways", {
skip_if_no_chromote()
sess <- read_html_live(html_test_path("scroll"))
expect_equal(sess$get_scroll_position(), list(x = 0, y = 0))
sess$scroll_to(500)
Sys.sleep(0.2)
expect_equal(sess$get_scroll_position(), list(x = 0, y = 500))
sess$scroll_by(-250)
Sys.sleep(0.2)
expect_equal(sess$get_scroll_position(), list(x = 0, y = 250))
sess$scroll_into_view("#bottom")
Sys.sleep(0.2)
expect_equal(sess$get_scroll_position(), list(x = 0, y = 685))
})
test_that("can type text", {
skip_if_no_chromote()
sess <- read_html_live(html_test_path("type"))
sess$type("#inputText", "hello")
expect_equal(html_text(html_element(sess, "#replicatedText")), "hello")
})
test_that("can press special keys",{
skip_if_no_chromote()
sess <- read_html_live(html_test_path("press"))
sess$press("#inputBox", "ArrowRight")
expect_equal(html_text(html_element(sess, "#keyInfo")), "ArrowRight/ArrowRight")
sess$press("#inputBox", "BracketRight")
expect_equal(html_text(html_element(sess, "#keyInfo")), "]/BracketRight")
})
# as_key_desc -------------------------------------------------------------
test_that("gracefully errors on bad inputs", {
expect_snapshot(error = TRUE, {
as_key_desc("xyz")
as_key_desc("X", "Malt")
})
})
test_that("automatically adjusts for shift key", {
# str(Filter(\(x) has_name(x, "shiftKey"), keydefs))
expect_equal(as_key_desc("KeyA")$key, "a")
expect_equal(as_key_desc("KeyA", "Shift")$key, "A")
# str(Filter(\(x) has_name(x, "shiftKeyCode"), keydefs))
expect_equal(as_key_desc("Numpad0")$windowsVirtualKeyCode, 45)
expect_equal(as_key_desc("Numpad0", "Shift")$windowsVirtualKeyCode, 96)
})
test_that("don't send text if modifier pushed", {
expect_equal(as_key_desc("KeyA")$text, "a")
expect_equal(as_key_desc("KeyA", "Shift")$text, "a")
expect_equal(as_key_desc("KeyA", "Alt")$text, "")
expect_equal(as_key_desc("KeyA", "Meta")$text, "")
expect_equal(as_key_desc("KeyA", "Control")$text, "")
})
test_that("modifiers are bitflag", {
expect_equal(as_key_desc("KeyA", "Shift")$modifiers, 8)
expect_equal(as_key_desc("KeyA", c("Alt", "Control"))$modifiers, 3)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.