2014-11-01 4 views
0

Я хочу использовать Perl, чтобы нажать на кнопку. Я получаю HTML-контент, а затем нажимаю кнопку. Но «input type = hidden» при проверке содержимого HTML. СодержаниеКак нажать кнопку (тип ввода = скрытый) Perl?

HTML:

<div class="content freepts_cont"> 

<input type="hidden" id="network" value="5"/> 

<div class="like_notification"></div> 

Firebug содержание:

<div class="content freepts_cont"> 
<input id="network" type="hidden" value="5"> 
<div class="like_notification"></div> 
<div id="site-links-list"> 
<center> 
<div id="L_c3cbf051418f1ec690c445ad843144" class="yt-video-content" style="width: 520px;"> 
<div class="likedPagesSingle" style="width:400px;border:1px solid #E8E8E8;padding-top:15px; min-height:250px;"> 
<center> 
<center> 
<div class="fb_page_title"> 
<div style="width:100px; height:100px; overflow:hidden;"> 
<a style="display:block; width:100px; heigt:100px; overflow:hidden;" href="#"> 
<img style="width:100%; height:auto;" title="Night Thriller" alt="Night Thriller" src="/images/layout/youtube_page_view.png"> 
</a> 
</div> 
<a class="single_like_button btn3-wrap" onclick="openFbLWin(843144, 'JTJGMiUzQSVFMyVEQyUxNSU5MSU4NCUxMSU3RiVFNyU4OCUyM1clM0QyJUM3JUIwMw==');"> 
</center> 
<div class="mtop10" style="margin-bottom:10px;"> 
<div class="mtop10" style="margin-bottom:10px;"> 
</div> 
</div> 

Я хочу использовать Perl щелкать: <a class="single_like_button btn3-wrap" onclick="openFbLWin(843144, 'JTJGMiUzQSVFMyVEQyUxNSU5MSU4NCUxMSU3RiVFNyU4OCUyM1clM0QyJUM3JUIwMw==');">

Как?

+0

Вам необходимо либо перепроектировать JavaScript, либо переделать его на Perl, либо использовать безглавой браузер, такой как Selenium или PhantomJS. – Quentin

ответ

0

Ваш лучший выбор, и в моем собственном опыте довольно легко настроить и использовать будет

WWW::Mechanize.

Я не совсем уверен, что именно вы пытаетесь сделать - изменить значение скрытого ввода, а затем отправить? Возможно, крошечный и непроверенный фрагмент будет вам полезен.

Если у вас есть более конкретные вопросы, я, вероятно, может помочь, но документы CPAN до сих пор прояснилось все мои вопросы, так что не освобождает их слишком быстро;)

В любом случае, Mechanize вполне хорошо документированы и полезны для этой задачи.

Редактировать: Я почему-то упустил ссылку, которую вы дали. Этот код должен найти его.

Edit2: вы можете попробовать WWW::Mechanize::Firefox, который, кажется, способен обрабатывать javascript. Я бы использовал его, но я уже привык к Механизации. Возможно, другие могут предложить лучший вариант.

my $mech = WWW::Mechanize->new(); 
$mech->follow_link(class => 'single_like_button btn3-wrap'); 
# alternatively, get the link object, see what you can do with that 
my $link = $mech->find_link(class => 'single_like_button btn3-wrap'); 
# or, if it is not the only one of class 
my @links = $mech->find_links(class => 'single_like_button btn3-wrap'); 
# now somehow get the link out of the list 

Это может не сработать, поскольку ссылка на нее действительно не предоставляется. в этом случае попробуйте использовать click() или click_button(). Чтобы быть совершенно честным, я должен буду указать вам документы, потому что у меня ограниченный опыт в этой конкретной проблеме, до сих пор получая ссылки и следя за ними, все, что мне нужно было сделать для тестирования моих сайтов.

Удачи в механизации!

+1

WWW :: Механизм не работает, кнопка запускает JavaScript. – Quentin

Смежные вопросы