select 网络表单中的文本选项

select option by text in webform

我正在使用 powershell 来完成网络表单。我在那里有下拉菜单,可以按值select它:

$dropdown.value = '3236'

它工作正常,但我需要通过文本select。我阅读了 this answer 并尝试了这段代码:

($dropdown | where {$_.innerHTML -eq "sometext"}).Selected = $true

也可以,但是因为下拉选项太多(大概几千个),需要几分钟到select,这是不能接受的。

我该如何改进?

顺便说一句,我使用 powershell 2.0

好的,我找到了解决方案,也许它并不完美,但我的性能提高了数百倍,而不是几分钟,不到一秒钟。

我创建了以下函数:

function getValue($innerHTML, $Name)
{    
    $innerHTML = $innerHTML.Substring($innerHTML.IndexOf($Name) - 11, 10)        
    return $innerHTML.Substring($innerHTML.IndexOf('=') + 1)
}

函数将下拉列表的 innerHTML 作为字符串,搜索选项名称和 return 值。

并按以下方式使用函数:

$drop.Value = getValue $drop.innerHTML 'somename'