Ver Fonte

Here's code for a pause() function:
https://github.com/aivaturi/Selenium-Remote-Driver/issues/60

Charles Howes há 12 anos atrás
pai
commit
cb3c5def21
2 ficheiros alterados com 25 adições e 0 exclusões
  1. 17 0
      lib/Selenium/Remote/Driver.pm
  2. 8 0
      t/01-driver.t

+ 17 - 0
lib/Selenium/Remote/Driver.pm

@@ -663,6 +663,23 @@ sub set_implicit_wait_timeout {
     return $self->_execute_command($res, $params);
 }
 
+=head2 pause
+
+ Description:
+    Pause execution for a specified interval of milliseconds.
+
+ Usage:
+    $driver->pause(10000);  # 10 second delay
+    $driver->pause();       #  1 second delay default
+
+=cut
+
+sub pause {
+  my $self = shift;
+  my $timeout = (shift // 1000) / 1000;
+  select(undef, undef, undef, $timeout); # Fractional-second sleep
+}
+
 =head2 close
 
  Description:

+ 8 - 0
t/01-driver.t

@@ -230,6 +230,14 @@ ALERT: {
         $driver->accept_alert;
 }
 
+PAUSE: {
+       my $starttime=time();
+       $driver->pause();
+       my $endtime=time();
+       ok($starttime <= $endtime-1,"starttime <= endtime+1"); # Slept at least 1 second
+       ok($starttime >= $endtime-2,"starttime >= endtime-2"); # Slept at most 2 seconds
+}
+
 QUIT: {
         $ret = $driver->quit();
         ok((not defined $driver->{'session_id'}), 'Killed the remote session');