02-webelement-live.t 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. use strict;
  2. use warnings;
  3. use Test::More 'no_plan';
  4. use Data::Dumper;
  5. BEGIN {
  6. use_ok( 'Selenium::Remote::Driver' ) || print "Can't load Driver, giving up.";
  7. }
  8. # Start our local http server
  9. system("perl t/http-server.pl > /dev/null &");
  10. my $driver = new Selenium::Remote::Driver(browser_name => 'firefox');
  11. my $website = 'http://localhost:63636';
  12. my $ret;
  13. my $elem;
  14. LINK: {
  15. $driver->get("$website/formPage.html");
  16. $ret = $driver->find_element("//a[\@href='/index.html']");
  17. $elem = $ret->{'cmd_return'};
  18. $ret = $elem->click();
  19. is($ret->{'cmd_status'}, 'OK', 'Click Link...');
  20. $ret = $driver->get_title();
  21. is($ret->{'cmd_return'}, 'Hello WebDriver', 'Verify clicked link.');
  22. $driver->go_back();
  23. }
  24. INPUT: {
  25. $elem = ($driver->find_element('withText', 'id'))->{'cmd_return'};
  26. $ret = $elem->get_text();
  27. is($ret->{'cmd_return'}, 'Example text', 'Get innerText');
  28. $elem = ($driver->find_element('id-name1', 'id'))->{'cmd_return'};
  29. $ret = $elem->get_value();
  30. is($ret->{'cmd_return'}, 'id', 'Get value (attribute)');
  31. $ret = $elem->get_attribute('value');
  32. is($ret->{'cmd_return'}, 'id', 'Get attribute @value');
  33. $ret = $elem->get_tag_name();
  34. is($ret->{'cmd_return'}, 'input', 'Get tag name');
  35. $elem = ($driver->find_element('checky', 'id'))->{'cmd_return'};
  36. $ret = $elem->is_selected();
  37. is($ret->{'cmd_return'}, 'false', 'Checkbox not selected');
  38. $ret = $elem->click();
  39. $ret = $elem->is_selected();
  40. is($ret->{'cmd_return'}, 'true', 'Checkbox is selected');
  41. $ret = $elem->toggle();
  42. $ret = $elem->is_selected();
  43. is($ret->{'cmd_return'}, 'false', 'Toggle & Checkbox is selected');
  44. }
  45. IMAGES: {
  46. $driver->get("$website/dragAndDropTest.html");
  47. $elem = ($driver->find_element('test1', 'id'))->{'cmd_return'};
  48. $ret = $elem->get_size();
  49. is($ret->{'cmd_return'}->{'width'}, '18', 'Image - right width');
  50. is($ret->{'cmd_return'}->{'height'}, '18', 'Image - right height');
  51. $ret = $elem->get_element_location();
  52. ok(defined $ret->{'cmd_return'}->{'x'}, 'Image - got x coord');
  53. ok(defined $ret->{'cmd_return'}->{'y'}, 'Image - got y coord');
  54. my $x = $ret->{'cmd_return'}->{'x'};
  55. my $y = $ret->{'cmd_return'}->{'y'};
  56. $ret = $elem->drag(200,200);
  57. $ret = $elem->get_element_location();
  58. is($ret->{'cmd_return'}->{'x'}, ($x+200), 'Moved to new x coord');
  59. is($ret->{'cmd_return'}->{'y'}, ($y+200), 'Moved to new y coord');
  60. }
  61. QUIT: {
  62. $ret = $driver->quit();
  63. ok((not defined $driver->{'session_id'}), 'Killed the remote session');
  64. }
  65. # Kill our HTTP Server
  66. `ps aux | grep http-server\.pl | grep perl | awk '{print \$2}' | xargs kill`;