Chrome.pm 712 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package Selenium::Chrome;
  2. # ABSTRACT: A convenience package for creating a Chrome instance
  3. use Moo;
  4. extends 'Selenium::Remote::Driver';
  5. =head1 SYNOPSIS
  6. my $driver = Selenium::Chrome->new;
  7. =cut
  8. has '+browser_name' => (
  9. is => 'ro',
  10. default => sub { 'chrome' }
  11. );
  12. sub _find_open_port_above {
  13. my ($port) = @_;
  14. my $free_port = wait_until {
  15. if (_probe_port($port)) {
  16. $port++;
  17. return 0;
  18. }
  19. else {
  20. return $port;
  21. }
  22. };
  23. return $free_port;
  24. }
  25. sub _probe_port {
  26. my ($port) = @_;
  27. return IO::Socket::INET->new(
  28. PeerAddr => $default_binary_server,
  29. PeerPort => $port,
  30. Timeout => 3
  31. );
  32. }
  33. 1;