Selenium-Remote-Driver

 view release on metacpan or  search on metacpan

at/sanity-chrome.test  view on Meta::CPAN

ok(defined $sz->{height},"get_window_size works (WD3)");
ok(defined $sz->{width},"get window size works (WD3)");
my $pos = $driver->get_window_position();
ok(defined $pos->{x},"get_window_size works (WD3)");
ok(defined $pos->{y},"get window size works (WD3)");

like($driver->get_current_url(),qr/test.html$/,"get_current_url works (WD3)");
like($driver->get_title(),qr/test/i,"get_title works (WD3)");

my $otherloc = abs_path("$FindBin::Bin/other.html");
$driver->get("file://$otherloc");
$driver->go_back();
$driver->dismiss_alert();
$driver->dismiss_alert();
like($driver->get_title(),qr/test/i,"go_back works (WD3)");

$driver->go_forward();
like($driver->get_page_source(),qr/ZIPPY/,"go_forward & get_page_source works (WD3)");
is(exception { $driver->refresh() }, undef, "refresh works (WD3)");
$driver->go_back();
$driver->dismiss_alert();
$driver->dismiss_alert();

#TODO execute_*_script testing

ok($driver->screenshot(),"can get base64'd whole page screenshot (WD3)");
SKIP: {
    skip "chromedriver doesn't know how to take element screenshots", 1;
    ok($driver->find_element('body','tag_name')->screenshot(0),"can get element screenshot (WD3 ONLY) and find_element (WD3) works.");
}

isa_ok($driver->find_element('red','class'),"Selenium::Remote::WebElement");
isa_ok($driver->find_element('text','name'),"Selenium::Remote::WebElement");
isa_ok($driver->find_element('Test Link', 'link_text'),"Selenium::Remote::WebElement");
isa_ok($driver->find_element('Test', 'partial_link_text'),"Selenium::Remote::WebElement");

is(scalar(@{$driver->find_elements('red','class')}),2,"can find multiple elements correctly");

my $lem = $driver->find_element('body', 'tag_name');
isa_ok($driver->find_child_element($lem, 'red','class'),"Selenium::Remote::WebElement");
isa_ok($driver->find_child_element($lem, 'text','name'),"Selenium::Remote::WebElement");
isa_ok($driver->find_child_element($lem, 'Test Link', 'link_text'),"Selenium::Remote::WebElement");
isa_ok($driver->find_child_element($lem, 'Test', 'partial_link_text'),"Selenium::Remote::WebElement");

$lem = $driver->find_element('form','tag_name');
is(scalar(@{$driver->find_child_elements($lem,'./*')}),6,"can find child elements (WD3)");

isa_ok($driver->get_active_element(),"Selenium::Remote::WebElement");

is(exception { $driver->cache_status() },undef, "cache_status implemented in krom");
my $coords = {
   latitude  => 40.714353,
   longitude => -74.005973,
};
ok($driver->set_geolocation(location => $coords),"can set_geolocation in krom");
is( $driver->get_geolocation()->{latitude},$coords->{latitude},"cang get_geolocation in krom");

ok($driver->get_log('server'), "get_log fallback works");
ok( scalar(@{$driver->get_log_types()}),"can fallback for get_log_types");

isnt(exception { $driver->set_orientation("LANDSCAPE") },undef,"set_orientation unavailable on desktop");
like(exception { $driver->get_orientation() },qr/error/,"get_orientation unavailable on desktop");

like($driver->upload_file($otherloc),qr/other.html$/,"upload_file fallback works");

#Jinkies, this stuff is cool, it prints the selenium server help page @_@
like( exception { $driver->get_local_storage_item('whee') },qr/help/i,"get_local_storage_item prints help page");
like( exception { $driver->delete_local_storage_item('whee') },qr/help/i,"get_local_storage_item prints help page");

ok($driver->switch_to_frame($driver->find_element('frame', 'id')),"can switch to frame (WD3)");
ok($driver->switch_to_frame(),"can switch to parent frame (WD3 only)");

ok($driver->set_window_position(1,1),"can set window position (WD3)");
ok($driver->set_window_size(640,480),"can set window size (WD3)");

SKIP: {
    skip "chromedriver does not minimize", 1;
    ok($driver->minimize_window(),"can minimize window (WD3 only)");
}
ok($driver->fullscreen_window(),"can fullscreen window (WD3 only)");

#XXX chrome has issued a fatwah against cookies issued by file:// urls
is(scalar(@{$driver->get_all_cookies()}),0,"can get cookie list (WD3)");
$driver->delete_all_cookies();
is(scalar(@{$driver->get_all_cookies()}),0,"can delete all cookies (WD3)");

ok($driver->mouse_move_to_location( element => $driver->find_element('a','tag_name')),"Can use new WD3 Actions API to emulate mouse_move_to_location");
$driver->click();
my $handles = $driver->get_window_handles();
is(scalar(@$handles),2,"Can move to element and then click it correctly (WD3)");

$driver->switch_to_window($handles->[1]);
is(exception { $driver->close() }, undef, "Can close new window (WD3)");
cmp_bag($driver->get_window_handles,[$handles->[0]],"Correct window closed (WD3)");
$driver->switch_to_window($handles->[0]);

my $input = $driver->find_element('input','tag_name');
$driver->mouse_move_to_location( element => $input );
$driver->click();
isnt(exception {$driver->send_modifier('Shift','down')}, undef, "chromedriver can't send_modifier");
$driver->send_keys_to_active_element('howdy',KEYS->{tab});
$input->send_keys('eee');
$driver->mouse_move_to_location( element => $driver->find_element('body','tag_name'));
$driver->click();

#XXX this has to be a BUG in the driver, the keys are getting thru
is($input->get_attribute('value'),'defaulthowdyeee',"element->get_attribute() emulates old behavior thru get_property (WD3)");
TODO: {
    local $TODO = "chrome can't get_property()";
    is($input->get_attribute('value',1),'default',"element->get_attribute() can do it's actual job (WD3)");
}
is($driver->execute_script(qq/ return document.querySelector('input').value /),'defaulthowdyeee',"execute_script works, and so does send_keys_to_active_element & element->send_keys (WD3)");
$input->clear();
is($input->get_property('value'),'',"clear() works (WD3)");

is(exception { $driver->button_down() },undef,"Can button down (WD3)");
is(exception { $driver->button_up() },undef,"Can button up (WD3)");
SKIP: {
    skip "chrome don't actionChain", 1;
    is(exception { $driver->release_general_action() }, undef, "Can release_general_action (WD3)");
}
ok($driver->find_element('radio2','id')->is_selected(),"WD3 is_selected() works");



( run in 1.431 second using v1.01-cache-2.11-cpan-39bf76dae61 )