2015-11-06 71 views
1

我想從下面的HTML中的下拉菜單中選擇一個項目。PowerShell Internet Explorer Com對象選擇類下拉菜單項

<select class="select" name="expiration"> 
 
<option value="N" selected="selected">Never</option> 
 
<option value="10M">10 Minutes</option> 
 
<option value="1H">1 Hour</option> 
 
<option value="1D">1 Day</option> 
 
<option value="1W">1 Week</option> 
 
<option value="2W">2 Weeks</option> 
 
<option value="1M">1 Month</option>

這裏是我當前的代碼。我沒有收到任何錯誤,只是該項目沒有被選中。

# Code to select menu item 
$ie = New-Object -comobject InternetExplorer.Application 
$ie.visible = $False 

# navigate to URL 
$ie.navigate('http://URL') 
while ($ie.Busy -eq $true) { Start-Sleep -Milliseconds 1000; } 

$expiration = $ie.Document.getElementsByClassName('expiration') 
$expiration.outerText |Select-Object -Index 2 
$ie.Document.getElementById('submit').Click() 
Start-Sleep -Milliseconds 1000 
$result = $ie.LocationURL 
+0

你嘗試 - $ expiration.Options.SelectedIndex = 2? – Avshalom

+0

是的,無法在此對象上找到'SelectedIndex'屬性。驗證該屬性是否存在並可以設置。 – rvrsh3ll

+0

'$ expiration = $ ie.Document.getElementsByClassName('expiration')'這行後面的'$ expiration'的值是多少?你的'select'元素的'class'是'select'而不是'expiration'。此外,我不認爲你可以選擇一個網頁上的列表中的元素與PO的「選擇」,它只會過濾你輸入的內容,但不會在網頁上執行 – sodawillow

回答

1

試試這個:

$ie = New-Object -ComObject InternetExplorer.Application 
$ie.Visible = $False 
$ie.navigate("http://URL") 
while ($ie.Busy) { Start-Sleep -Milliseconds 1000 } 

$expiration = $ie.Document.getElementsByClassName("select") 
$expiration.Options.SelectedIndex = 2 
$ie.Document.getElementById("submit").Click() 
Start-Sleep -Milliseconds 1000 
$result = $ie.LocationURL