none
powershell - доступ к элементу input без ID и без Name RRS feed

  • Вопрос

  • хочу с помощью powershell автоматизировать некоторые действия с internet explorer
    хочу на некоторой странице заполнить поля input согласно логике моего скрипта

    Вот код поля input которое я хочу заполнить
    http://lh6.ggpht.com/-qiB52lqLiHY/UlmbqrLSEhI/AAAAAAAAC0w/rvOvc1-Dm4A/s0/imgcb3792c65cf78e8b544db515db2ec571.jpg
    код получен с помощью opera dragonfly

    Обычно я в таких случаях делал так

    $ie.navigate($url)
    while ($ie.Busy -eq $true) { Start-Sleep -Seconds 1 }
    $doc = $ie.document
    $html = $doc.documentElement.outerHTML;
    $value1 = $doc.getElementByID("component_4").value
    $value2 = $doc.getElementByName("component_3").value

    Но в данном случае у исследуемого поля input нету ID и нету Name
    Поэтом как обычно не получается.
    Подскажите, что можно сделать в таком случае.


    12 октября 2013 г. 19:07

Ответы

  • Получим все формы и по индексу исправим значение для ICQ.

    #Для ICQ
    $forms = $ie.Document.forms.Item(1)
    $forms.Item(23).Value = "12313"
    
    #Для Skype
    $forms.Item(27).Value = "my@skype.ru"

    • Помечено в качестве ответа korggrodno3 13 октября 2013 г. 14:18
    13 октября 2013 г. 8:12
    Отвечающий
  • PS >  $ie.Document.forms.item(1) | select name,value,type,@{n="i";e={($global:i++)}}
    
    name                    value                       type    i
    ----                    -----                       ----    -
    phone.type              cell                        hidden  0
    phone.country           8                           text    1
    phone.city              999                         text    2
    phone.number            3333333                     text    3
    preferredContact.string cell_phone                  radio   4
    phone.comment                                       text    5
    phone.type              home                        hidden  6
    phone.country           8                           text    7
    phone.city                                          text    8
    phone.number                                        text    9
    preferredContact.string home_phone                  radio  10
    phone.comment                                       text   11
    phone.type              work                        hidden 12
    phone.country           8                           text   13
    phone.city                                          text   14
    phone.number                                        text   15
    preferredContact.string work_phone                  radio  16
    phone.comment                                       text   17
    email.string            iiiiiiiii@yandex.ru         text   18
    preferredContact.string email                       radio  19
    personalSite.type       icq                         hidden 20
                                                        hidden 21
    personalSite.url                                    hidden 22
                                                        text   23
    personalSite.type       skype                       hidden 24
                                                        hidden 25
    personalSite.url                                    hidden 26
                                                        text   27
    personalSite.type       freelance                   hidden 28
                            http://free-lance.ru/users/ hidden 29
    personalSite.url                                    hidden 30
                            http://free-lance.ru/users/ text   31
    personalSite.type       moi_krug                    hidden 32
                            http://                     hidden 33
    personalSite.url                                    hidden 34
                            http://                     text   35
    personalSite.type       linkedin                    hidden 36
                            http://linkedin.com/        hidden 37
    personalSite.url                                    hidden 38
                            http://linkedin.com/        text   39
    personalSite.type       facebook                    hidden 40
                            http://facebook.com/        hidden 41
    personalSite.url                                    hidden 42
                            http://facebook.com/        text   43
    personalSite.type       livejournal                 hidden 44
                            http://                     hidden 45
    personalSite.url                                    hidden 46
                            http://                     text   47
    personalSite.type       personal                    hidden 48
                            http://                     hidden 49
    personalSite.url                                    hidden 50
                            http://                     text   51
                            Сохранить                   submit 52


    • Изменено KazunEditor 13 октября 2013 г. 14:48
    • Помечено в качестве ответа korggrodno3 13 октября 2013 г. 15:32
    13 октября 2013 г. 14:47
    Отвечающий

Все ответы

  • Получим все формы и по индексу исправим значение для ICQ.

    #Для ICQ
    $forms = $ie.Document.forms.Item(1)
    $forms.Item(23).Value = "12313"
    
    #Для Skype
    $forms.Item(27).Value = "my@skype.ru"

    • Помечено в качестве ответа korggrodno3 13 октября 2013 г. 14:18
    13 октября 2013 г. 8:12
    Отвечающий
  • Получим все формы и по индексу исправим значение для ICQ.

    #Для ICQ
    $forms = $ie.Document.forms.Item(1)
    $forms.Item(23).Value = "12313"
    
    #Для Skype
    $forms.Item(27).Value = "my@skype.ru"

    Да все верно.
    Ваш код проверил все работает.
    Был бы премного благодарен если бы вы еще пояснили каким образом вычислялся индекс 23 и 27
    Не на угад же ведь подбирается?

    13 октября 2013 г. 14:20
  • PS >  $ie.Document.forms.item(1) | select name,value,type,@{n="i";e={($global:i++)}}
    
    name                    value                       type    i
    ----                    -----                       ----    -
    phone.type              cell                        hidden  0
    phone.country           8                           text    1
    phone.city              999                         text    2
    phone.number            3333333                     text    3
    preferredContact.string cell_phone                  radio   4
    phone.comment                                       text    5
    phone.type              home                        hidden  6
    phone.country           8                           text    7
    phone.city                                          text    8
    phone.number                                        text    9
    preferredContact.string home_phone                  radio  10
    phone.comment                                       text   11
    phone.type              work                        hidden 12
    phone.country           8                           text   13
    phone.city                                          text   14
    phone.number                                        text   15
    preferredContact.string work_phone                  radio  16
    phone.comment                                       text   17
    email.string            iiiiiiiii@yandex.ru         text   18
    preferredContact.string email                       radio  19
    personalSite.type       icq                         hidden 20
                                                        hidden 21
    personalSite.url                                    hidden 22
                                                        text   23
    personalSite.type       skype                       hidden 24
                                                        hidden 25
    personalSite.url                                    hidden 26
                                                        text   27
    personalSite.type       freelance                   hidden 28
                            http://free-lance.ru/users/ hidden 29
    personalSite.url                                    hidden 30
                            http://free-lance.ru/users/ text   31
    personalSite.type       moi_krug                    hidden 32
                            http://                     hidden 33
    personalSite.url                                    hidden 34
                            http://                     text   35
    personalSite.type       linkedin                    hidden 36
                            http://linkedin.com/        hidden 37
    personalSite.url                                    hidden 38
                            http://linkedin.com/        text   39
    personalSite.type       facebook                    hidden 40
                            http://facebook.com/        hidden 41
    personalSite.url                                    hidden 42
                            http://facebook.com/        text   43
    personalSite.type       livejournal                 hidden 44
                            http://                     hidden 45
    personalSite.url                                    hidden 46
                            http://                     text   47
    personalSite.type       personal                    hidden 48
                            http://                     hidden 49
    personalSite.url                                    hidden 50
                            http://                     text   51
                            Сохранить                   submit 52


    • Изменено KazunEditor 13 октября 2013 г. 14:48
    • Помечено в качестве ответа korggrodno3 13 октября 2013 г. 15:32
    13 октября 2013 г. 14:47
    Отвечающий

  • Спасибо большое за ваши ответы.
    Подскажите еще какой средой разработки ps скриптов вы пользуетесь?

    я пользуюсь
    PowerGUI.3.7.0.92.msi
    powershell_30_Windows6.1-KB2506143-x64.msu

    И этот PowerGUI какой то очень жутко тормозной и местами глючный.
    к примеру.
    Очень очень длинное первоначальное открытие PowerGUI Script Editor
    Ну местами у меня он падает в процессе дебага (изредка бывает)

    Может быть есть что нибудь более подвижное скоросное и удобное?
    13 октября 2013 г. 15:39
  • Изредка PowerShell ISE,все остальное NotePad++.

    13 октября 2013 г. 15:49
    Отвечающий
  • NotePad++ PowerShell Lexer
    Это набор вы обычно используете?
    или какойто другой?
    13 октября 2013 г. 16:04