1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- use strict;
- use warnings;
- use Test::More;
- use Selenium::Remote::Driver;
- use FindBin;
- use lib $FindBin::Bin . '/lib';
- use TestHarness;
- $Selenium::Remote::Driver::FORCE_WD2 = 1;
- my $harness = TestHarness->new(
- this_file => $FindBin::Script
- );
- my %selenium_args = %{ $harness->base_caps };
- my $driver = Selenium::Remote::Driver->new(%selenium_args);
- $driver->get('http://danielgempesaw.com/Selenium-Remote-Driver/xhtmlTest.html');
- # This depends explicitly on the page we're visiting (xhtmlTest.html),
- my %finders = (
- class => 'navigation',
- class_name => 'navigation',
- css => 'html',
- id => 'linkId',
- link => 'this goes to the same place',
- link_text => 'this goes to the same place',
- name => 'windowOne',
- partial_link_text => 'this goes to the same',
- tag_name => 'html',
- xpath => '//html'
- );
- foreach my $by (keys %finders) {
- my $locator = $finders{$by};
- my $method = 'find_element_by_' . $by;
- ok($driver->can($method), $method . ': installed properly');
- my $elem = $driver->$method($locator);
- ok($elem, $method . ': finds an element properly');
- ok($elem->isa('Selenium::Remote::WebElement'), $method . ': element is a WebElement');
- {
- # Briefly suppress warning output for prettier tests
- my $warned = 0;
- local $SIG{__WARN__} = sub { $warned++ };
- ok(!$driver->$method('missing') , $method . ': does not croak on unavailable elements');
- ok($warned, $method . ': unavailable elements throw a warning');
- }
- }
- done_testing;
|