Как я могу установить значение ComboBox на веб-сайте? - PullRequest
1 голос
/ 23 мая 2019

Я пытался написать какой-нибудь код, который входит в систему на веб-сайте, хотя я могу установить значения «логин» или «пароль», я не могу установить значение поля «empresa», так какэто комбобокс

Страница входа изображена по этой ссылке: https://i.stack.imgur.com/3bk6B.png

Когда я проверяю объект на веб-сайте, поле "Empresa" дает мне следующее:

<div id="cmbProject_cmb" class="RadComboBox RadComboBox_" style="border-style:None;font-size:18px;width:100%;white-space:normal;background-color:transparent;">

<table summary="combobox" style="border-width:0;border-collapse:collapse;width:100%" class="rcbFocused">

<tbody><tr class="rcbReadOnly">

<td class="rcbInputCell rcbInputCellLeft" style="width:100%;"><input name="cmbProject$cmb" type="text" class="rcbInput radPreventDecorate" id="cmbProject_cmb_Input" value="Empresa" readonly="readonly" style="color:Black;font-size:18px;" autocomplete="off"></td><td class="rcbArrowCell rcbArrowCellRight"><a id="cmbProject_cmb_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a></td>

</tr>

</tbody></table><input id="cmbProject_cmb_ClientState" name="cmbProject_cmb_ClientState" type="hidden" autocomplete="off" value="{"logEntries":[],"value":"WTM - PROD|1","text&quot;:"WTM - PROD","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false}">

</div>

код, который я использовал, выглядит следующим образом

Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer

Sub Login()

Dim oHTML_Element As IHTMLElement
Dim sURL As String
On Error GoTo Err_Clear
   sURL = "https://prodweb-votorantim.mc1.com.br/WTM/aspx/Login.aspx"
Set oBrowser = New InternetExplorer
   oBrowser.Silent = True
   oBrowser.timeout = 60
   oBrowser.navigate sURL
   oBrowser.Visible = True

Do
Loop Until oBrowser.readyState = READYSTATE_COMPLETE

Set HTMLDoc = oBrowser.document
  HTMLDoc.all.txtUserName_txt.Value = "login"
  HTMLDoc.all.txtPassword_txtPass.Value = "password"
  HTMLDoc.all.cmbProject.Value = "WTM - PROD" 

For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
    If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For

Next
Err_Clear:

Resume Next
End Sub

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете использовать JavaScript, чтобы установить значение

Option Explicit
'VBE > Tools > References: Microsoft Internet Controls
Public Sub Login()
    Dim ie As New InternetExplorer
    With ie
        .Visible = True
        .Navigate2 "https://prodweb-votorantim.mc1.com.br/WTM/aspx/Login.aspx"

        While .Busy Or .readyState < 4: DoEvents: Wend

        With .document
            .querySelector("#txtUserName_txt").Value = "bob.builder@web.net"
            .querySelector("#txtPassword_txtPass").Value = "topSecret"
            .parentWindow.execScript "document.querySelector('#cmbProject_cmb_Input').value = 'WTM-PROD';"
            .querySelector("#btnLogin_input").Click
        End With

        Stop ' <delete me later
        .Quit
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...