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

Handle discrepancies in cross-platofrm binary startup commands

Daniel Gempesaw 10 лет назад
Родитель
Сommit
5529792b9f
1 измененных файлов с 23 добавлено и 1 удалено
  1. 23 1
      lib/Selenium/CanStartBinary.pm

+ 23 - 1
lib/Selenium/CanStartBinary.pm

@@ -134,7 +134,29 @@ sub _construct_command {
 
     my @args = map { '--' . $_ . '=' . $args{$_} } keys %args;
 
-    return join(' ', ($executable, @args, '> /dev/null 2>&1 &') );
+    # Handle Windows vs Unix discrepancies for invoking shell commands
+    my ($prefix, $suffix) = (_command_prefix(), _command_suffix());
+    return join(' ', ($prefix, $executable, @args, $suffix) );
+}
+
+sub _command_prefix {
+    if ($^O eq 'MSWin32') {
+        return 'start /MAX '
+    }
+    else {
+        return '';
+    }
+}
+
+sub _command_suffix {
+    if ($^O eq 'MSWin32') {
+        return ' > /nul 2>&1 ';
+    }
+    else {
+        # TODO: allow users to specify whether & where they want
+        # driver output to go
+        return ' > /dev/null 2>&1 &';
+    }
 }
 
 sub _find_open_port_above {