Method: Selenium::WebDriver::Remote::Bridge#submit_element

Defined in:
lib/selenium/webdriver/remote/bridge.rb

#submit_element(element) ⇒ Object



386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
# File 'lib/selenium/webdriver/remote/bridge.rb', line 386

def submit_element(element)
  script = "/* submitForm */ var form = arguments[0];\n" \
           "while (form.nodeName != \"FORM\" && form.parentNode) {\n  " \
           "form = form.parentNode;\n" \
           "}\n" \
           "if (!form) { throw Error('Unable to find containing form element'); }\n" \
           "if (!form.ownerDocument) { throw Error('Unable to find owning document'); }\n" \
           "var e = form.ownerDocument.createEvent('Event');\n" \
           "e.initEvent('submit', true, true);\n" \
           "if (form.dispatchEvent(e)) { HTMLFormElement.prototype.submit.call(form) }\n"

  execute_script(script, Bridge.element_class::ELEMENT_KEY => element)
rescue Error::JavascriptError
  raise Error::UnsupportedOperationError, 'To submit an element, it must be nested inside a form element'
end