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