Changed
- Node helpers on
Capybara::Cuprite::Browser(value,set,select,visible_text,drag, etc.) are private, use
Capybara's node API ornode.native.nodefor Ferrum's Browser#findis private,Browser#active_elementandBrowser#within_windoware removed, use Capybara's
active_elementandwithin_windowDriver#find,Driver#screen_size,Driver#within_window,Node#findandNode#commandare private- Ferrum's
base_urlfollowsCapybara.app_host(or Capybara's server) and the visited page, so
page.driver.browser.cookiesdoesn't needdomain:. A:base_urloption is replaced onvisitand restored on
reset! - Requires Ferrum 0.20.1, see its changelog.
page.driver.browser.evaluate_on_new_documentapplies to the current page only and is gone afterreset!, use the
:extensionsoption orbrowser.add_extension. Scripts passed toevaluate_scriptandexecute_scriptmay warn
about what changes in Ferrum 0.21, setFERRUM_JS_API=newto run them that way now
Deprecated
- Deprecated methods print a warning and will be removed in 0.21
Driver#body, useDriver#htmlinsteadDriver#backandDriver#forward, useDriver#go_backandDriver#go_forwardinsteadDriver#window_handleandBrowser#window_handle, usecurrent_window_handleinsteadDriver#render, useDriver#save_screenshotinsteadDriver#render_base64, usepage.driver.browser.screenshotorpage.driver.browser.pdfinsteadDriver#zoom_factor=andDriver#paper_size=, passscale:,paper_width:andpaper_height:to
save_screenshotinsteadDriver#resizeandDriver#resize_window, usepage.current_window.resize_toinsteadDriver#authorizeandDriver#basic_authorize, usepage.driver.browser.network.authorizeinsteadDriver#headers,headers=,add_headersandadd_header, usepage.driver.browser.headersinsteadDriver#cookies,set_cookie,remove_cookieandclear_cookies, usepage.driver.browser.cookiesinsteadDriver#network_traffic,clear_network_traffic,wait_for_network_idleandclear_memory_cache, use
page.driver.browser.networkinstead.network.trafficincludes blocked requestsDriver#click, usepage.driver.browser.mouse.clickinsteadDriver#scroll_to, usepage.scroll_toinsteadDriver#wait_for_reload,timeout,timeout=,device_pixel_ratioandviewport_size, use the same methods on
page.driver.browserinsteadDriver#set_proxy, pass the:proxyoption to the driver insteadDriver#restartandNode#browser, usepage.driver.browser.restartandpage.driver.browserinsteadBrowser#visitandBrowser#status_code, usegotoandnetwork.statusinsteadNode#send_key, useNode#send_keysinsteadNode#parents, use Capybara'sancestorinsteadNode#property, usenode.native.node.propertyinsteadNode#attributesNode#description, usenode.native.node.descriptioninstead
Fixed
Node#drag_towithdrop_modifiers:holds the modifiers while moving to the target and sends keydown and keyup for
them, like Selenium does. They used to be set only on mouseup [rubycdp/ferrum#581]- Resizing the window reset hover and pointer overrides passed with
--blink-settings, so@media (hover: hover)
stopped matching on headless Linux [#282, rubycdp/ferrum#664]
Removed
- Ruby 3.1 support, Cuprite requires Ruby 3.2 or newer
format: :pdfinDriver#save_screenshot, broken since Ferrum 0.6. A.pdfpath renders a PDFDriver#source, it always raisedNotImplementedError. Usepage.htmlorpage.sourceinsteadCapybara::Cuprite::Cookie, it was never loaded.Driver#cookiesreturnsFerrum::Cookies::CookieobjectsPage#frame_name, it was unusedPage#reset_modalsandBrowser#reset_modals, they were unusedBrowser#switch_to_frame,find_modal,accept_confirm,dismiss_confirm,accept_promptanddismiss_prompt,
they were internal delegates toPageBrowser#browser_error, it was used only in specsNode#as_jsonandNode#to_json, they were unusedDriver#pause, usebinding.irbwithheadless: false, orDriver#debug