Просмотр исходного кода

Add convenience subroutines for probing ports

Daniel Gempesaw 10 лет назад
Родитель
Сommit
cf508e7585
1 измененных файлов с 25 добавлено и 0 удалено
  1. 25 0
      lib/Selenium/Chrome.pm

+ 25 - 0
lib/Selenium/Chrome.pm

@@ -15,4 +15,29 @@ has '+browser_name' => (
     default => sub { 'chrome' }
 );
 
+sub _find_open_port_above {
+    my ($port) = @_;
+
+    my $free_port = wait_until {
+        if (_probe_port($port)) {
+            $port++;
+            return 0;
+        }
+        else {
+            return $port;
+        }
+    };
+
+    return $free_port;
+}
+
+sub _probe_port {
+    my ($port) = @_;
+
+    return IO::Socket::INET->new(
+        PeerAddr => $default_binary_server,
+        PeerPort => $port,
+        Timeout => 3
+    );
+}
 1;