Changelog
Source:NEWS.md
selenider 0.4.0
CRAN release: 2024-04-20
-
find_each_element()
andfind_all_elements()
are new functions that can be used to find elements using an element collection. They are designed to replaceelem_flatmap()
, which is now deprecated and defunct. -
element_list()
is now deprecated in favour ofas.list.selenider_elements()
. -
print_lazy()
is now deprecated, as it offers little benefit and is complex to maintain. -
ChromoteSession$check_active()
is used to make sure that the session is still active before performing an action. - The
timeout
argument toopen_url()
,back()
,forward()
, andreload()
/refresh()
allows you to specify how long to wait for a page to load. They default to 60 seconds.
selenider 0.3.0
CRAN release: 2024-01-27
-
Moved all session-specific options in
selenider_session()
to an option object (eitherchromote_options()
orselenium_options()
), which can be passed to the newoptions
argument ofselenider_session()
. This means that a few arguments toselenider_session()
have been deprecated and moved into option objects. Old code should be changed as follows:-
selenider_session(view = TRUE)
should be changed to:selenider_session(options = chromote_options(view = TRUE))
-
selenider_session(selenium_manager = FALSE)
should be changed to:selenider_session( options = selenium_options(server_options = wdman_server_options()) )
-
selenider_session(quiet = FALSE)
should be changed to:selenider_session(options = selenium_options( server_options = selenium_server_options(verbose = TRUE)) ))
Additionally,
create_chromote_session()
,create_selenium_server()
, andcreate_selenium_client()
are now deprecated. This is because you now have access to all the options of these functions in theoptions
argument ofselenider_session()
. -
-
Improved reliability of functions when they use chromote, with help of code from the puppeteer project. Most notably:
-
elem_click()
and friends now work if part of the element is not visible. -
elem_value()
andelem_set_value()
now work on a wider variety of elements, including<select>
elements.
-
elem_focus()
is a new function that allows you to focus an element.selenider_session()
now uses thewithr.hook_source
option to ensure thatwithr
works insidesource()
.
selenider 0.2.0
CRAN release: 2023-12-02
New features
-
elem_select()
is a new function for interacting with<select>
/<option>
elements, allowing you to easily select by value, text and index. - New
current_url()
returns the URL of the current page.
Major changes
- Previously,
selenider
used RSelenium as a Selenium backend. However, this package did not work with the latest version of Selenium, or the latest version of Google Chrome. It now uses selenium, which is compatible with both. This should makeselenider
more reliable, and more likely to work out of the box when using Selenium. - Printing HTML elements now prints the actual HTML contained by the element. Previously, it printed the element in “lazy” form, describing how the element was to be obtained. While this new change makes viewing elements much easier, it also means that to print an element, it needs to exist in the DOM. Use
print_lazy()
to use the previous behaviour when printing.
Minor changes and bug fixes
-
take_screenshot()
withfile = NULL
now views the screenshot correctly. -
elem_set_value()
now correctly invisibly returns its first argumentx
, allowing it to be used in a pipeline. -
find_element()
andfind_elements()
no longer accept thelink_text
argument, as this was not working with chromote. Useelem_find()
orelem_filter()
instead. -
elem_get_value()
now uses the JavaScriptvalue
property of an element, not the"value"
attribute, meaning that it works in more cases.