1package Devel::REPL::Plugin::Selenium; 2{ 3 $Devel::REPL::Plugin::Selenium::VERSION = '1.36'; 4} 5 6use Devel::REPL::Plugin; 7use Data::Dumper; 8use namespace::clean -except => [ 'meta' ]; 9 10has 'selenium' => (isa => 'Object', is => 'rw'); 11 12sub selenium_lex_env { 13 my $self = shift; 14 15 my $class = ref($self->selenium); 16 my $code = "my \$sel;\n" . Data::Dumper->Dump([$self->selenium], ['sel']); 17 $code .= "delete \$sel->{_ua};\n"; 18 $code .= "use $class; bless \$sel, '$class';"; 19 return $code; 20} 21 22around 'read' => sub { 23 my $orig = shift; 24 my ($self, @args) = @_; 25 my $line = $self->$orig(@args); 26 return $line unless $line =~ m/\S/; 27 28 if ($line =~ m/^js:\s*(.+)/) { 29 $line = "get_eval(q|$1|)"; 30 } 31 $line =~ s/^(jQuery|\$)\((.+)/get_eval(q|window.jQuery($1)|)/; 32 $line = "\$sel->$line"; 33 warn $line; 34 return $line; 35}; 36 371; 38 39__END__ 40 41=pod 42 43=head1 NAME 44 45Devel::REPL::Plugin::Selenium 46 47=head1 VERSION 48 49version 1.36 50 51=cut 52