powershell-未识别IE复选框

powershell-未识别IE复选框,powershell,Powershell,最近,我为我们的一个监控系统创建了一个powershell脚本,该脚本自动加载网页,使用用户凭据登录并提交凭据以加载仪表板页面 验证凭据并加载仪表板页面后,会出现“自动扩展会话”复选框(默认情况下,会话在不活动30分钟后超时) 我还尝试自动检查复选框。从我看到的情况来看,检查成功应用,当我获得元素的状态时,检查值显示为“True”-但是30分钟后,系统自动注销。如果我手动将勾号应用于复选框,则30分钟后不会超时 我在Windows7x86上使用IE11 以前有人遇到过这个吗 应用检查的power

最近,我为我们的一个监控系统创建了一个powershell脚本,该脚本自动加载网页,使用用户凭据登录并提交凭据以加载仪表板页面

验证凭据并加载仪表板页面后,会出现“自动扩展会话”复选框(默认情况下,会话在不活动30分钟后超时)

我还尝试自动检查复选框。从我看到的情况来看,检查成功应用,当我获得元素的状态时,检查值显示为“True”-但是30分钟后,系统自动注销。如果我手动将勾号应用于复选框,则30分钟后不会超时

我在Windows7x86上使用IE11

以前有人遇到过这个吗

应用检查的powershell脚本的一部分:
$varHEAchk=$ie.Document.getElementByID(“扩展会话复选框”)。checked=$true

$ie.Document.getElementByID("extend-session-checkbox").checked = "checked"
我随后检查了该元素,它确实说明:

核对:正确

复选框的一些HTML代码:

<input id="extend-session-checkbox" style="margin: -2px 4px 0px 0px;" type="checkbox" />


任何帮助都将不胜感激。

我认为您需要将checked属性设置为
checked
的字符串值,而不是布尔值
$true

$ie.Document.getElementByID("extend-session-checkbox").checked = "checked"
要确定是否选中了该框,可以使用

if($ie.Document.getElementByID("extend-session-checkbox").checked)

您也可以考虑默认情况下检查框:

<input id="extend-session-checkbox" style="margin: -2px 4px 0px 0px;" type="checkbox" checked />


真奇怪,它仍然不起作用。我将attributer从布尔值$true修改为“checked”,并在true时运行if语句(回显“checkbox is checked”)。复选框被选中,脚本回显为ok。但是30分钟后,它又超时了。好吧,我恐怕将复选框设置为“checked”是一回事,但在那之后,表单需要提交。这可能相当棘手。。您需要找到表单的
操作
url,如果该url是相对url,则必须将其转换为绝对url。设置复选框后,可能会执行
$ie.Document.Forms[0].submit()
?我也看到过这样提交表单的解决方案:首先在Powershell变量
$form=$ie.Document.Forms[0]
中获取表单。接下来在那里设置字段
$form.fields[“扩展会话复选框”]=“选中”
。最后使用Post请求提交:
$response=Invoke WebRequest-Uri''-Method Post-Body$form.fields-ContentType'application/x-www-form-urlencoded'