find_all_links() Perl-функция не находит все ссылки

Я начинаю с Perl и пытаюсь создать скрипт, который выводит меня со страницы (я уже выполнил вход). По идее, я пытаюсь использовать функцию find_link из WWW::Mechanize (Я тоже пробовал WWW::Mechanize::Firefox) найти ссылку выхода, но она не работает. Итак, мой вопрос:

событие onmouseover избегает этой ссылки, которая будет найдена? Я думаю WWW::Mechanize::Firefox поддерживает JavaScript, но, возможно, это не правильно.

<a class="hb2" href="/goform/Logout?logout=Logout" onmouseover="(window.status='Logout');
return true">Logout</a>

Есть ли способ сделать то, что я хочу? Любая помощь или предложения будут высоко оценены.

3 ответа

Решение

По-видимому, мой модуль MozRepl (необходимый для использования WWW::Mechanize::Firefox) был плохо установлен. @gangabass, @andy Я проверил HTML, и он, кажется, был в источнике. Поэтому @choroba я проверил, почему WWW:: Mechanize:: Firefox работал так же, как WWW:: Mechanize, и переустановил надстройку. Тогда все работало идеально. Большое спасибо всем, что нашли время помочь мне.

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

Поэтому, пожалуйста, покажите вывод $mech->content() и ваш код для обработки этой ссылки (как указано выше $mech->find_link( text => 'Logout' ); должно сработать).

Вы сбросили страницу с mech-dump утилита командной строки? Попробуй это. Если ваша ссылка отображается в выводе mech-dump тогда ты звонишь find_all_links() неправильно.

Если mech-dump не показывает вашу ссылку, значит, вы, вероятно, либо неправильно сформировали HTML, либо HTML-код создается в браузере с помощью JavaScript.

Другие вопросы по тегам