module Capybara::Playwright::Node::UpdateValueJS

Public Instance Methods

update_value_js(element, value) click to toggle source
# File lib/capybara/playwright/node.rb, line 253
        def update_value_js(element, value)
          # ref: https://github.com/teamcapybara/capybara/blob/f7ab0b5cd5da86185816c2d5c30d58145fe654ed/lib/capybara/selenium/node.rb#L343
          js = <<~JAVASCRIPT
          (el, value) => {
            if (el.readOnly) { return };
            if (document.activeElement !== el){
              el.focus();
            }
            if (el.value != value) {
              el.value = value;
              el.dispatchEvent(new InputEvent('input'));
              el.dispatchEvent(new Event('change', { bubbles: true }));
            }
          }
          JAVASCRIPT
          element.evaluate(js, arg: value)
        end