2016-05-20 1 views
0

Я пробовал около десятка предложений, которые я нашел до сих пор. Я могу получить пару веб-сайтов для работы, но не тот, который мне действительно нужен.Скрипт PowerShell для входа на сайт

Это то, что я использую минус URL:

$username="myname" 
$password="mypass" 

$ie = New-Object -ComObject InternetExplorer.Application 
$ie.Visible = $true 
$ie.navigate($url) 

Start-Sleep -Milliseconds 5000 

$ie.Document.getElementByID("uname").value = $username 
$ie.Document.getElementByID("adminloginpassword").value = $password 

я получаю: Вы не можете вызвать метод выражения нуль-значной.

Ниже приведена информация об осмотре элементов. К сожалению, я совершенно не знаком с PowerShell, поэтому любая помощь будет принята с благодарностью.

<form action="processAdminLogin.sdi" method="POST" enctype="application/x-www-form-urlencoded" name="login" onsubmit="return toggleContinueImage(this)" target="_top"> 
<input type="hidden" name="initial_function" value=""> 
<div class="login-shadow-square" style="width: 450px;"> 
<table cellspacing="0" cellpadding="8" class="adminLogin"> 

<tbody><tr><td colspan="2">&nbsp;<br></td></tr> 

<tr> 
<td class="lbl"><label for="uname" class="adminLoginText">Username</label></td> 
<td align="left"><input type="text" name="uname" id="uname" value="" size="25" maxlength="25"></td> 
</tr> 
<tr> 
<td class="lbl"><label for="adminloginpassword" class="adminLoginText">Password</label></td> 
<td align="left"><input type="password" name="adminloginpassword" id="adminloginpassword" size="25" maxlength="25" autocomplete="off"></td> 
</tr> 
<tr> 
<td></td> 
<td class="smaller" align="left"><input type="checkbox" name="remember" id="remember"><label for="remember" class="adminLoginText">Remember my username on this computer.</label></td> 
</tr> 
<tr> 
<td></td> 
<td align="left"> 
<script type="text/javascript" language="JavaScript">document.write("<input type='image' value='Submit' src='//u 
</td> 
</tr> 
</tbody></table> 
</div> 
+0

Вы пытались использовать другой URL (с другим идентификатором для элементов)? Вы запустили PowerShell в качестве администратора? Является ли URL-адрес в Интранете? Достаточно ли этих 5 секунд? Вероятно, это медленнее, и вам нужно увеличить эту ценность. –

+0

Является ли проверенный элемент взятым из '$ url' или из всплывающего окна входа? – JosefZ

+0

Я отправился на веб-сайт и в IE и щелкнул правой кнопкой мыши, чтобы получить Inspect Element. У меня есть несколько других сайтов, которые работают нормально. Gmail, Facebook и т. Д. Просто возникают проблемы с этим сайтом. Это не сайт интрасети. Я попробую увеличить время ожидания или использовать $ ie.busy, как было предложено. –

ответ

0

Вместо того чтобы спать в течение пяти секунд, см., Если IE занят и спит, пока это не так. Таким образом,

while($ie.Busy) { Start-Sleep -Milliseconds 100 } 

Кроме того, было бы хорошей проверкой, существует ли объект, прежде чем пытаться его манипулировать. Если он не существует, возможно, перезагрузка будет в порядке.

+0

У меня было то, что часть в другой версии, моя плохо. Когда я использовал его, я получил ошибку отключения: вызванный объект отключился от своих клиентов. Не знаете, что вы имеете в виду при проверке, существует ли она? Я смотрю сайт, и я получил имя объекта из элемента Inspect. –