Я пытаюсь автоматизировать повторяющуюся задачу заполнения формы с использованием HTA. Я делаю веб-страницу в IFrame. самая первая страница - это страница входа. Я НЕОБХОДИМО легко получить доступ к элементам имени пользователя и пароля этой страницы (отображается в IFrame) и, следовательно, иметь возможность автологинировать, нажав кнопку в HTA. Но теперь следующая страница содержит текстовое поле, которое мне нужно заполнить, а затем снова нажмите кнопку. Теперь у меня есть кнопка в HTA. Когда я нажимаю эту кнопку, я хочу, чтобы текстовое поле заполняло значение, которое я предоставил. Но вместо этого я получаю эту ошибку, Невозможно установить свойство «значение» нулевой ссылки. При отображении этого объекта с помощью предупреждения отображается «null». Я не понимаю, почему я могу ссылаться на элементы на странице входа и почему не на внутренних страницах.Объект IFrame, возвращающий null, если ссылается на HTA, содержащий IFrame
Ниже мой код:
<html>
<head>
<HTA:APPLICATION
APPLICATIONNAME="HTA"
SYSMENU="YES"
NAVIGABLE="YES"
>
<meta http-equiv="x-ua-compatible" content="ie=11">
<title>HTA</title>
<script type="text/javascript">
window.resizeTo(700,700);
</script>
<script type="text/javascript" >
function Start() {
var iframePage = document.getElementById("iframeid").contentDocument;
var userId = iframePage.getElementById("userid");
var passwd = iframePage.getElementById("pwd");
var form = iframePage.getElementById("login");
userId.value='uu';
passwd.value='pp';
form.submit();
}
function Show() {
document.getElementById("iframe").style.display = "block";
}
function FillRncntl() {
var iframePages = document.getElementById("iframeid").contentDocument;;
var runcntl = iframePages.getElementById("PRCSMULTI");
runcntl.value='test';
}
</script>
</head>
<body>
<form class="form" name="form">
<input class="links" type="button" value="Show PIA" onclick="Show();" />
<input class="links" type="button" value="Login" onclick="Start();" />
<input class="links" type="button" value="Enter Runcontrol" onclick="FillRncntl();" />
</form>
<br>
<div class="iframe" id="iframe" style="display:none">
<iframe application="no" src="www.xyz.com" width="600" height="600" id="iframeid">
</div>
</body>
</html>
-Шоу кнопка PIA показывает страницу входа. Working Fine.
-Логинговая кнопка используется для входа в систему автоматически. Working Fine.
-Enter Кнопка Runcntl используется для заполнения текстового поля. NOT Working Fine.
Его не только с этим текстовым полем, у меня такие же проблемы с другими элементами с этой страницы.
PS: Его веб-сайт Peoplesoft Intranet.
Thats большой @ Darryls99, он работал прекрасно. Я не знал о том, что Peoplesoft сам по себе содержится в IFrame. Тем не менее, мне нужно знать одно, о iframe, «ptifrmtgtframe», это genric iFrame, используемый всеми страницами? или разные страницы отображаются в разных фреймах? Где я могу получить эту информацию. Спасибо :-) –
Короткий ответ да, что iframe используется последовательно в PeopleSoft AFAIK. Длинный ответ. Изменяя URL-адрес и на основе типа содержимого, iframe может присутствовать или не присутствовать. В URL-адресе обратите внимание на имя сервера, если вы измените его с psp на psc, вы получите только содержимое внутри iframe. (без навигации). Также существуют другие типы содержимого PeopleSoft, которые могут быть или не быть в пределах iframe (weblibcs, домашние страницы, навигация и т. Д.). Если найдено имя iFrame, используя инструменты разработчика, встроенные в браузер, чтобы просмотреть страницу. – Darryls99
Спасибо @ Darryls99. Но как насчет страниц, которые отображаются как плавающие страницы, например, в случае страницы Process Schedular Request, где мы выбираем процессы и сервер для запуска. Это также IFrame? как передать его элементы. Извиняюсь, если я ношу, может поднять новый вопрос, если потребуется. :-) –