gems cuprite 0.20

3 hours ago

Changed

  • Node helpers on Capybara::Cuprite::Browser (value, set, select, visible_text, drag, etc.) are private, use
    Capybara's node API or node.native.node for Ferrum's
  • Browser#find is private, Browser#active_element and Browser#within_window are removed, use Capybara's
    active_element and within_window
  • Driver#find, Driver#screen_size, Driver#within_window, Node#find and Node#command are private
  • Ferrum's base_url follows Capybara.app_host (or Capybara's server) and the visited page, so
    page.driver.browser.cookies doesn't need domain:. A :base_url option is replaced on visit and restored on
    reset!
  • Requires Ferrum 0.20.1, see its changelog.
    page.driver.browser.evaluate_on_new_document applies to the current page only and is gone after reset!, use the
    :extensions option or browser.add_extension. Scripts passed to evaluate_script and execute_script may warn
    about what changes in Ferrum 0.21, set FERRUM_JS_API=new to run them that way now

Deprecated

  • Deprecated methods print a warning and will be removed in 0.21
  • Driver#body, use Driver#html instead
  • Driver#back and Driver#forward, use Driver#go_back and Driver#go_forward instead
  • Driver#window_handle and Browser#window_handle, use current_window_handle instead
  • Driver#render, use Driver#save_screenshot instead
  • Driver#render_base64, use page.driver.browser.screenshot or page.driver.browser.pdf instead
  • Driver#zoom_factor= and Driver#paper_size=, pass scale:, paper_width: and paper_height: to
    save_screenshot instead
  • Driver#resize and Driver#resize_window, use page.current_window.resize_to instead
  • Driver#authorize and Driver#basic_authorize, use page.driver.browser.network.authorize instead
  • Driver#headers, headers=, add_headers and add_header, use page.driver.browser.headers instead
  • Driver#cookies, set_cookie, remove_cookie and clear_cookies, use page.driver.browser.cookies instead
  • Driver#network_traffic, clear_network_traffic, wait_for_network_idle and clear_memory_cache, use
    page.driver.browser.network instead. network.traffic includes blocked requests
  • Driver#click, use page.driver.browser.mouse.click instead
  • Driver#scroll_to, use page.scroll_to instead
  • Driver#wait_for_reload, timeout, timeout=, device_pixel_ratio and viewport_size, use the same methods on
    page.driver.browser instead
  • Driver#set_proxy, pass the :proxy option to the driver instead
  • Driver#restart and Node#browser, use page.driver.browser.restart and page.driver.browser instead
  • Browser#visit and Browser#status_code, use goto and network.status instead
  • Node#send_key, use Node#send_keys instead
  • Node#parents, use Capybara's ancestor instead
  • Node#property, use node.native.node.property instead
  • Node#attributes
  • Node#description, use node.native.node.description instead

Fixed

  • Node#drag_to with drop_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: :pdf in Driver#save_screenshot, broken since Ferrum 0.6. A .pdf path renders a PDF
  • Driver#source, it always raised NotImplementedError. Use page.html or page.source instead
  • Capybara::Cuprite::Cookie, it was never loaded. Driver#cookies returns Ferrum::Cookies::Cookie objects
  • Page#frame_name, it was unused
  • Page#reset_modals and Browser#reset_modals, they were unused
  • Browser#switch_to_frame, find_modal, accept_confirm, dismiss_confirm, accept_prompt and dismiss_prompt,
    they were internal delegates to Page
  • Browser#browser_error, it was used only in specs
  • Node#as_json and Node#to_json, they were unused
  • Driver#pause, use binding.irb with headless: false, or Driver#debug

Don't miss a new cuprite release

NewReleases is sending notifications on new releases.