PowerShell - IE Object, ошибка установки значения - PullRequest
6 голосов
/ 28 января 2012

Я хочу создать скрипт с PowerShell для проверки статуса рейса.Но я не могу установить значение текстового поля.

Как я могу это исправить?Заранее спасибо!

Ошибка: для этого объекта не найдено свойство 'value';убедитесь, что он существует и может быть установлен.

Код:

#Flight Number (Only Lufthansa)
#For example flight number
[string]$flightNumber = "LH 3102"

$ie = new-object -com "InternetExplorer.Application"
$ie.navigate("http://www.lufthansa.com/de/de/Ankunft-und-Abflug")
$ie.visible = $true
sleep 5
#while ($ie.busy) {sleep -milliseconds 50}
while($ie.ReadyState -ne 4) {start-sleep -m 100}     

$ie.document.getElementsByName("flightNumber").value = $flightNumber
#Error
$ie.document.getElementsByName("flightNumber").IHTMLInputTextElement_value = $flightNumber
#Error
$ie.document.getElementsByName("flightNumber").IHTMLInputElement_value = $flightNumber
#Error

Ответы [ 2 ]

5 голосов
/ 28 января 2012

Попробуйте:

$ie.document.getElementByID("ns_7_CO19VHUC6FFPF0I5O4OBCT2OE4_flightNumber").value = $flightNumber

Это работает для меня.Я нашел идентификатор, посмотрев исходный код через мой браузер.

Я не знаю, почему getElementsByName не работает.Возможно, кто-то еще может пролить свет на это?


Редактировать:

Хорошо, я понял это.getElementsByName возвращает коллекцию.Вы должны перебрать коллекцию, чтобы установить значение.Итак, ваш код будет выглядеть так:

#Flight Number (Only Lufthansa)
#For example flight number
[string]$flightNumber = "LH 3102"

$ie = new-object -com "InternetExplorer.Application"
$ie.navigate("http://www.lufthansa.com/de/de/Ankunft-und-Abflug")
$ie.visible = $true
sleep 5
#while ($ie.busy) {sleep -milliseconds 50}
while($ie.ReadyState -ne 4) {start-sleep -m 100}     

$elements = $ie.document.getElementsByName("flightNumber")

Foreach($element in $elements)
    {
        $element.value = $flightnumber
    } 

Это сработало для меня.

1 голос
/ 05 июля 2015

Очень просто, просто посмотрите имя тега:

$ie = New-Object -com InternetExplorer.Application 
$ie.visible=$true

$ie.navigate("http://www.lufthansa.com/de/de/Ankunft-und-Abflug") 
while($ie.ReadyState -ne 4) {start-sleep -m 100} 

# here is where the magic happens
$termsField = $ie.document.getElementsByName("routeDepartureStationName")
@($termsField)[0].value ="powershell"

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...