1
0

10-switch-to-window.t 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. use strict;
  2. use warnings;
  3. use 5.010;
  4. use Test::More;
  5. use Test::Selenium::Remote::Driver;
  6. if (not Test::Selenium::Remote::Driver->server_is_running()) {
  7. plan skip_all => 'The Selenium server must be running for this test';
  8. }
  9. plan tests => 9;
  10. my $s = Test::Selenium::Remote::Driver->new(
  11. default_finder => 'css',
  12. javascript => 1,
  13. );
  14. $s->get_ok('http://perl.org/');
  15. $s->title_is('The Perl Programming Language - www.perl.org');
  16. my $old_handles = $s->get_window_handles;
  17. is scalar(@$old_handles), 1;
  18. $s->execute_script(q{$(window.open('http://cpan.org/'))});
  19. $s->title_is('The Perl Programming Language - www.perl.org');
  20. my $handles = $s->get_window_handles;
  21. is scalar(@$handles), 2;
  22. diag explain $handles;
  23. my @titles;
  24. foreach my $h (@$handles) {
  25. $s->switch_to_window($h);
  26. diag $s->get_title;
  27. push @titles, $s->get_title;
  28. }
  29. my $current_title = $s->get_title;
  30. foreach my $t (@titles) {
  31. TODO: {
  32. local $TODO = 'switching window by title';
  33. eval {
  34. $s->switch_to_window($t);
  35. };
  36. is $@, undef, 'exception switching';
  37. is $s->get_title, $t, 'title';
  38. }
  39. }