我在html中有以下下拉列表:
<select id="ctl00_MainContent_ddlPlatform" tabindex="1">
<option selected="selected" value="-1">Please select...</option>
<option value="4">UNIX</option>
<option value="5">Database</option>
<option value="6">Windows</option>
<option value="8">AD Group</option>
<option value="9">Network Devices</option>
</select>
在Poweshell中,我通过id:
选择它$serverType = $ie.document.getElementById('ctl00_MainContent_ddlPlatform')
获取Windows的索引:
$type = getValue $serverType.innerHTML 'Windows'
我查了一下,$type = "6"
然后选择此选项:
$serverType.Value = $type
但是我检查$serverType.Value
,它是空的。
之前有效,我没有做任何改动。
这很奇怪,但如果我设置
$serverType.Value = "6"
,它正在发挥作用。
更新:
这是我的函数getValue:
function getValue($innerHTML, $serverName)
{
$position = $innerHTML.IndexOf($serverName)
if ($position -ge 0)
{
$innerHTML = $innerHTML.Substring($innerHTML.IndexOf($serverName) - 11, 10)
return $innerHTML.Substring($innerHTML.IndexOf('=') + 1)
}
else
{
return -1
}
}
奇怪的是,如果我尝试施放[int]$type
,我会收到错误:
无法将值“”6“”转换为“System.Int32”类型。错误:“输入 字符串的格式不正确。“
答案 0 :(得分:0)
为 $ type 变量设置显式字符串数据类型:
[String]$type = getValue $serverType.innerHTML 'Windows'
Powershell通过最合适的类型为新变量设置数据类型,在您的情况下为INT。
您可以像这样检查变量数据类型:
PS C:\> $type = 6
$type.GetType().Name
Int32
PS C:\> $type = '6'
$type.GetType().Name
String
答案 1 :(得分:0)
实际上$ type是“6”,但是引号是字符串的一部分。
所以我需要删除它们,我通过以下行来删除它们:
$type.Replace("`"","")