我在 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
,我会得到错误:
Cannot convert value ""6"" to type "System.Int32". Error: "Input string was not in a correct format."
最佳答案
为$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
关于html - 无法在下拉列表中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41751924/