Hello Monks,
I am trying to check the onclick attribute of anchor tags with WWW::Mechanize::Firefox. Here is what I have explored so far...
At first, I thought I'd check the attrs property of WWW::Mechanize::Link. Something like this:
my @links = $mech->find_all_links(url_regex => 'asdf.html'); foreach my $link (@links) { print $link->attrs()->{onclick}; }
Unfortunately, that did not work. Further exploration yielded the reason--the make_link subroutine in WWW::Mechanize::Firefox always just initializes attrs with an empty hashref.
No problem, I thought--maybe I could just patch that functionality in. Not much success with that either, though--I'm having a tough time understanding how the MozRepl::RemoteObject module works. I thought something like this sound work:
my @links = $mech->find_all_links_dom(url_regex => 'asdf.html'); foreach my $link (@links) { print $link->{onclick}; }
Or:
my @links = $mech->find_all_links_dom(url_regex => 'asdf.html'); foreach my $link (@links) { print $link->__attr('onclick'); }
Or at least:
my @links = $mech->find_all_links_dom(url_regex => 'asdf.html'); foreach my $link (@links) { # Neither of the following work either... print Dumper($link->__keys); print Dumper(keys %$link); }
This is the error message I receive. It seems like a Javascript error, but that's all I can surmise...
MozRepl::RemoteObject: TypeError: obj.hasOwnProperty is not a function + at /usr/local/share/perl/5.10.1/MozRepl/RemoteObject.pm line 1509
What am I missing? Is there a simpler way to go about this?
EDIT:
Solved! Just to clarify, I was looking for just the text of the onclick attribute of links. When I was doing $link->{onclick}, I was getting the compiled Javascript of the onclick attribute. To get just the simple text, all I had to do was $link->getAttribute('onclick').
Thanks all!
In reply to [Solved] Checking onclick attribute of an anchor tag with WWW:::Mechanize::Firefox by Riales
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |