| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- use strict;
- use warnings;
- use JSON;
- use Test::More;
- use Selenium::Remote::Driver;
- use Selenium::Remote::Mock::Commands;
- use Selenium::Remote::Mock::RemoteConnection;
- use Selenium::Remote::Driver::ActionChains;
- my $record = (defined $ENV{'WD_MOCKING_RECORD'} && ($ENV{'WD_MOCKING_RECORD'}==1))?1:0;
- my $os = $^O;
- if ($os =~ m/(aix|freebsd|openbsd|sunos|solaris)/) {
- $os = 'linux';
- }
- my %selenium_args = (
- browser_name => 'firefox'
- );
- my $mock_file = "11-action-chains-mock-$os.json";
- if (!$record && !(-e "t/mock-recordings/$mock_file")) {
- plan skip_all => "Mocking of tests is not been enabled for this platform";
- }
- if ($record) {
- $selenium_args{remote_conn} = Selenium::Remote::Mock::RemoteConnection->new(record => 1);
- }
- else {
- $selenium_args{remote_conn} =
- Selenium::Remote::Mock::RemoteConnection->new( replay => 1,
- replay_file => "t/mock-recordings/$mock_file" );
- }
- my $driver = Selenium::Remote::Driver->new(%selenium_args);
- my $action_chains = Selenium::Remote::Driver::ActionChains->new(driver => $driver);
- $driver->get('http://html5demos.com/drag');
- $driver->pause('1000');
- my $src = $driver->find_element('a#two', 'css');
- my $tgt = $driver->find_element('div#bin','css');
- $action_chains->drag_and_drop($src,$tgt)->perform();
- if ($record) {
- $driver->remote_conn->dump_session_store("t/mock-recordings/$mock_file");
- }
- done_testing;
|