瀏覽代碼

Fix #381: fix submit() on form elements when using WC3 polyfill

George S. Baugh 7 年之前
父節點
當前提交
6c440c66e3
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      lib/Selenium/Remote/WebElement.pm

+ 7 - 1
lib/Selenium/Remote/WebElement.pm

@@ -144,7 +144,13 @@ sub click {
 
 sub submit {
     my ($self) = @_;
-    return $self->driver->execute_script("return arguments[0].form.submit();",{'element-6066-11e4-a52e-4f735466cecf'=> $self->{id}} ) if $self->driver->{is_wd3} && !(grep { $self->driver->browser_name eq $_ } qw{chrome MicrosoftEdge});
+    if ($self->driver->{is_wd3} && !(grep { $self->driver->browser_name eq $_ } qw{chrome MicrosoftEdge})) {
+        if ($self->get_tag_name() ne 'form') {
+            return $self->driver->execute_script("return arguments[0].form.submit();",{'element-6066-11e4-a52e-4f735466cecf'=> $self->{id}} );
+        } else {
+            return $self->driver->execute_script("return arguments[0].submit();",{'element-6066-11e4-a52e-4f735466cecf'=> $self->{id}} );
+        }
+    }
     my $res = { 'command' => 'submitElement', 'id' => $self->id };
     return $self->_execute_command($res);
 }