无法在下拉列表中选择项目

时间:2017-01-19 21:21:47

标签: html powershell html-select

我在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”类型。错误:“输入   字符串的格式不正确。“

2 个答案:

答案 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("`"","")