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.