Я пытаюсь войти в панель веб-конфигурации устройства (для теста я использую мой маршрутизатор) и создать резервную копию.Модуль WWW :: Scripter.Страница использует JavaScript.Я думаю, что я не передаю параметры должным образом, потому что он возвращает ошибку:
No such field 'userName' at /home/angel/perl5/lib/perl5/WWW/Mechanize.pm line 750.
Функция JS на веб-странице:
function CheckUserPswInvalid()
{
var userName = $("userName");
var pcPassword = $("pcPassword");
if(!CheckUserPswChars(userName.value))
{
userName.select();
userName.focus();
return false;
}
if(!CheckUserPswChars(pcPassword.value))
{
pcPassword.select();
pcPassword.focus();
return false;
}
return true;
}
Мой код:
use WWW::Scripter;
use HTTP::Cookies;
my $url = 'http://192.168.0.1/';
my $username = 'username';
my $pass = 'password';
my $agent = new WWW::Scripter;
$agent->use_plugin('JavaScript');
$agent->get('http://192.168.0.1/');
$agent->cookie_jar(HTTP::Cookies->new);
$agent->form_name("loginForm");
$agent->field('userName' => $username);
$agent->field("pcPassword" => $pass);
$agent->submit();
РЕДАКТИРОВАТЬ: Добавление части HTML:
` <div class="loginBox">
<div class="noteDiv">
<span id="note"></span>
<span id="tip"></span>
</div>
<div class="panelThre" align="center">
<div align="center" class="picDiv" align="center">
<ul>
<li id="unLi" class="unLi"><input class="text" id="userName" type="text" maxlength="15" /></li>
<li class="blank"></li>
<li id="pwLi" class="pwLi"><input class="text" id="pcPassword" type="password" maxlength="15"/></li>
</ul>
<label id="loginBtn" class="loginBtn" onclick="PCSubWin()"/></label>
<div>
<label id="copyright">Copyright © 2016 TP-LINK Technologies Co., Ltd. All rights reserved. </label>
</div>
</div>
</div>
</div>
<form action="/userRpm/LoginRpm.htm" method="get" id="loginForm" enctype="multipart/form-data">
<input type="hidden" value="Save" name="Save" />
</form>
`