Finders.t 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #! /usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Test::More;
  5. BEGIN: {
  6. unless (use_ok('Selenium::Remote::Driver')) {
  7. BAIL_OUT("Couldn't load Selenium::Remote::Driver");
  8. exit;
  9. }
  10. }
  11. use FindBin;
  12. use lib $FindBin::Bin . '/lib';
  13. use TestHarness;
  14. my $harness = TestHarness->new(
  15. this_file => $FindBin::Script,
  16. record => 1
  17. );
  18. my %selenium_args = %{ $harness->base_caps };
  19. my $driver = Selenium::Remote::Driver->new(%selenium_args);
  20. $driver->get('http://danielgempesaw.com/Selenium-Remote-Driver/xhtmlTest.html');
  21. # This depends explicitly on the page we're visiting (xhtmlTest.html),
  22. my %finders = (
  23. class => 'navigation',
  24. class_name => 'navigation',
  25. css => 'html',
  26. id => 'linkId',
  27. link => 'this goes to the same place',
  28. link_text => 'this goes to the same place',
  29. name => 'windowOne',
  30. partial_link_text => 'this goes to the same',
  31. tag_name => 'html',
  32. xpath => '//html'
  33. );
  34. foreach my $by (keys %finders) {
  35. my $locator = $finders{$by};
  36. my $method = 'find_element_by_' . $by;
  37. ok($driver->can($method), $method . ': installed properly');
  38. my $elem = $driver->$method($locator);
  39. ok($elem, $method . ': finds an element properly');
  40. ok($elem->isa('Selenium::Remote::WebElement'), $method . ': element is a WebElement');
  41. ok(!$driver->$method('missing') , $method . ': does not croak on unavailable elements');
  42. }
  43. done_testing;