Class: Capybara::Playwright::Node::SendKeys::PressKey

Inherits:
Object
  • Object
show all
Defined in:
lib/capybara/playwright/node.rb

Instance Method Summary collapse

Constructor Details

#initialize(key:, modifiers:) ⇒ PressKey

Returns a new instance of PressKey.



678
679
680
681
682
683
684
685
686
687
688
689
# File 'lib/capybara/playwright/node.rb', line 678

def initialize(key:, modifiers:)
  # Shift requires an explicitly uppercase a-z key to produce the correct output
  # See https://playwright.dev/docs/input#keys-and-shortcuts
  key = key.upcase if modifiers == [MODIFIERS[:shift]] && key.match?(/^[a-z]$/)

  # puts "PressKey: key=#{key} modifiers: #{modifiers}"
  if modifiers.empty?
    @key = key
  else
    @key = (modifiers + [key]).join('+')
  end
end

Instance Method Details

#execute_for(element) ⇒ Object



691
692
693
# File 'lib/capybara/playwright/node.rb', line 691

def execute_for(element)
  element.press(@key)
end