class Capybara::Playwright::Driver
Public Class Methods
new(app, **options)
click to toggle source
# File lib/capybara/playwright/driver.rb, line 9 def initialize(app, **options) @browser_runner = BrowserRunner.new(options) @page_options = PageOptions.new(options) end
Public Instance Methods
invalid_element_errors()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 73 def invalid_element_errors @invalid_element_errors ||= [ Node::NotActionableError, Node::StaleReferenceError, ].freeze end
needs_server?()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 15 def needs_server?; true; end
no_such_window_error()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 80 def no_such_window_error Browser::NoSuchWindowError end
reset!()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 49 def reset! # screenshot is available only before closing page. if callback_on_save_screenshot? raw_screenshot = @browser&.raw_screenshot if raw_screenshot callback_on_save_screenshot(raw_screenshot) end end # video path can be aquired only before closing context. # video is completedly saved only after closing context. video_path = @browser&.video_path # [NOTE] @playwright_browser should keep alive for better performance. # Only `Browser` is disposed. @browser&.clear_browser_contexts if video_path callback_on_save_screenrecord(video_path) end @browser = nil end
wait?()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 14 def wait?; true; end
Private Instance Methods
browser()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 17 def browser @browser ||= ::Capybara::Playwright::Browser.new( driver: self, playwright_browser: playwright_browser, page_options: @page_options.value, record_video: callback_on_save_screenrecord?, ) end
create_playwright_browser()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 30 def create_playwright_browser # clean up @playwright_browser and @playwright_execution on exit. main = Process.pid at_exit do # Store the exit status of the test run since it goes away after calling the at_exit proc... @exit_status = $ERROR_INFO.status if $ERROR_INFO.is_a?(SystemExit) quit if Process.pid == main exit @exit_status if @exit_status # Force exit with stored status end @browser_runner.start end
playwright_browser()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 26 def playwright_browser @playwright_browser ||= create_playwright_browser end
quit()
click to toggle source
# File lib/capybara/playwright/driver.rb, line 43 def quit @playwright_browser&.close @playwright_browser = nil @browser_runner.stop end