我运行了这段代码,它允许我登录网站并将所有内容下载到一个文本文件中,但在第一次尝试之后它就给了我一个错误:" Property' value&#39 ;无法在此对象上找到它确保它存在且可设置。"自从我运行它已经过了大约一个小时,它运行起来并且我没有改变代码。我清除了Internet Explorer中的cookie并删除了appdata cookies文件夹中的所有内容(唯一的原因我可能认为这样做是因为我已经登录到该页面)。
编辑:我刚刚编辑了脚本,因此它没有尝试首先登录,只是抓住页面,出于某种原因,它自动登录我的脚本,因为它返回的信息是只有在您登录后才能查看。可能导致这种情况的原因以及如何在每次登录时将其设置为何处?$username = "user"
$password = "pass"
$ie = New-Object -com InternetExplorer.Application
$ie.visible=$false
$ie.navigate("website")
while($ie.ReadyState -ne 4) {start-sleep -m 100}
$ie.document.getElementById("username").value = "$username"
$ie.document.getElementById("password").value = "$password"
$ie.document.getElementById("click").click()
start-sleep 20
$ie.Document.body | Out-File -FilePath c:\web.txt
以下是我尝试登录的页面中的表单html:
form method="POST" action="login.php" name="loginform">
<div class="login" align="center"><p class="indent">Sign-in to your account</p></div>
<div class="loginbot">
<div class="email">Email Address: <br />
<input name="username" type="text" value="" size="25" />
<br />
<input type="checkbox" name="remember" value="checkbox" class="small_chk1" value="ON"/>Automatically sign-in<br /></div>
<div class="pass">Password:<br />
<input name="password" type="password" size="25" /><br />
<a href="login.php?ti=password">Forgot your password?</a><br /></p></div></div>
<div class="logbut"><input type="hidden" name="ti" value="do_login">
<input type="submit" value="Login ->" name="click" style="border-style: outset; border-width: 1; font-family:Verdana; color:#FFFFFF; font-size:10pt; background-image:url('images/clickbg.gif')"></div><br />
<br /></form>
答案 0 :(得分:0)
我确信凭据只是存储在某个会话/ cookie中。
每个进程都会保留Cookie,因此它将是每个对象。
您可以点击页面上的退出按钮吗?如果有注销,请在下载内容后让Powershell按下它,它应该清除你的会话,让你下次再登录。
您还可以尝试使用以下方法强制清除流程中的Cookie:
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);
请参阅http://support.microsoft.com/kb/195192/en
上的文档您还可以通过调用以清除IE中的所有内容:
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351