Auto.pm 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package Selenium::Driver::Auto;
  2. #ABSTRACT: Automatically choose the best driver available for your browser choice
  3. use strict;
  4. use warnings;
  5. use Carp qw{confess};
  6. use File::Which;
  7. # Abstract: Automatically figure out which driver you want
  8. =head1 SUBROUTINES
  9. =head2 build_spawn_opts($class,$object)
  10. Builds a command string which can run the driver binary.
  11. All driver classes must build this.
  12. =cut
  13. sub build_spawn_opts {
  14. # Uses object call syntax
  15. my (undef,$object) = @_;
  16. if ($object->{browser} eq 'firefox') {
  17. require Selenium::Driver::Gecko;
  18. return Selenium::Driver::Gecko->build_spawn_opts($object);
  19. } elsif ($object->{browser} eq 'chrome') {
  20. require Selenium::Driver::Chrome;
  21. return Selenium::Driver::Chrome->build_spawn_opts($object);
  22. } elsif ($object->{browser} eq 'MicrosoftEdge') {
  23. require Selenium::Driver::Edge;
  24. return Selenium::Driver::Edge->build_spawn_opts($object);
  25. } elsif ($object->{browser} eq 'safari') {
  26. require Selenium::Driver::Safari;
  27. return Selenium::Driver::Safari->build_spawn_opts($object);
  28. }
  29. require Selenium::Driver::SeleniumHQ::Jar;
  30. return Selenium::Driver::SeleniumHQ::Jar->build_spawn_opts($object);
  31. }
  32. 1;