Отправить текст из Excel VBA в текстовую область ServiceNow - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь заполнить текстовую область в инструменте продажи билетов ServiceNow, используя VBA

До сих пор я успешно использовал этот метод и этот точный (исключая код сайта и идентификатор текстовой области) код для заполненияобласть текста в другом инструменте создания билетов, однако в ServiceNow он по какой-то причине ничего не делает.

кажется, что он просто отлично вписывается в страницу, так как я могу получить возвращаемое значение на заголовке (открывая новый экземпляр IEс VBA и подключением к нему также не помогло), но при попытке установить значение текстовой области (поле описания или любое другое в этом отношении) он не отправляет текст поверх +, он также не возвращает никакогозначение для любого из других идентификаторов на веб-странице.

Я пытался сделать это несколькими различными способами, например, используя .innerHTML, .Value и .text, но ни один из них, похоже, не отправлял или не возвращал какое-либо значение, устанавливаяэто как объект, отправляющий его с чистым IE.document.getElementById ("ident.comments "). value =" test ", но без наковальни.

Любые указатели на то, что яЯ буду очень признателен за ошибки.

Sub Test()



    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")



    marker = 0
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For X = 0 To (IE_count - 1)
    On Error Resume Next
    my_url = objShell.Windows(X).document.Location
    my_title = objShell.Windows(X).document.Title

    If my_title Like "INC0010005" & "*" Then
        Set IE = objShell.Windows(X)
        marker = 1
        Exit For
    Else
    End If
Next


If marker = 0 Then
    MsgBox ("Website not found")
    Exit Sub
End If


'trying to send "test" text into the field, nothing comes up
   Set notesObj = IE.document.getElementById("incident.comments")
   notesObj.Value = "test"

   tests = IE.document.getElementById("incident.comments").innerHTML

'testing for return value (comes up as empty message box each time)
   MsgBox (tests)


Set evt = IE.document.createEvent("keyboardevent")
evt.initEvent "change", True, False
    notesObj.dispatchEvent evt



End Sub

И код области текста описания:

<textarea name="incident.comments" class="form-control" id="incident.comments" aria-required="false" style="height: 64px; overflow: hidden; -ms-overflow-y: hidden; -ms-word-wrap: break-word;" spellcheck="true" onkeydown="multiKeyDown(this);;" onkeyup="multiModified(this);fieldTyped(this);" onkeypress="" onfocus="this.isFocused=true;" onblur="this.isFocused=false;" onchange="this.isFocused=false;multiModified(this)" wrap="soft" autocomplete="off" data-type="glide_journal_input" data-ref="incident.comments" data-charlimit="false" data-length="4000"></textarea>

...