Kaynağa Gözat

Pass script to _execute_command in execute_script. Check whether an ELEMENT was returned by the script before converting to WebElement.

Phil Kania 14 yıl önce
ebeveyn
işleme
7956e651ab
1 değiştirilmiş dosya ile 2 ekleme ve 2 silme
  1. 2 2
      lib/Selenium/Remote/Driver.pm

+ 2 - 2
lib/Selenium/Remote/Driver.pm

@@ -572,11 +572,11 @@ sub execute_script {
             }
         }
         
-        my $params = {'args' => @args};
+        my $params = {'script' => $script, 'args' => [@args]};
         my $ret = $self->_execute_command($res, $params);
         
         # replace any ELEMENTS with WebElement
-        if (exists $ret->{'cmd_return'}->{'ELEMENT'}) {
+        if (ref($ret) and (ref($ret->{'cmd_return'}) eq 'HASH') and exists $ret->{'cmd_return'}->{'ELEMENT'}) {
             $ret->{'cmd_return'} =
                 new Selenium::Remote::WebElement(
                                         $ret->{'cmd_return'}->{ELEMENT}, $self);