Поиск и нажатие кнопки в интернете

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
jaroslav
Сообщения: 45
Зарегистрирован: 07 дек 2009, 13:25

21 фев 2015, 22:54

Доброго времени суток.
Ребята, помогите, пожалуйста, написать программу.
Открываю с помощью гиперссылки в ексель определенную страницу в интернете (браузер не определен) - здесь вопросов нет.
Мне нужно найти на этой странице кнопку "Send FREE message" и нажать ее, чтобы открылось новое диалоговое окно. В окне, которое откроется, нужно написать текст в поле для текста, например из ячейки B2, и нажать кнопку Send
jaroslav
Сообщения: 45
Зарегистрирован: 07 дек 2009, 13:25

22 фев 2015, 20:31

Колега doober частично помог решить вопрос. Вот его код:

Код: Выделить всё

Sub Send_FREE_message()
    Dim WebBrowser As Object
    Set WebBrowser = CreateObject("InternetExplorer.Application")
    WebBrowser.Visible = True
    WebBrowser.Navigate "https://www.natashaclub.com/profile.php?ID=1000770574"
    Do While Not (WebBrowser.ReadyState = 4)
        DoEvents
    Loop

    For Each he In WebBrowser.Document.GetElementById("UnderPhotoLinkDiv").GetElementsByTagName("a")

        he.Click
        Exit For
    Next

End Sub
Этот код делает клик на кнопке "Send FREE message" и открывается нужное окно в новом окне. Хотелось бы, чтобы нужное окно открывалось вместо вкладки, на которой нажымается кнопка "Send FREE message". Подскажите, пожалуйста, как это сделать.
jaroslav
Сообщения: 45
Зарегистрирован: 07 дек 2009, 13:25

24 фев 2015, 20:13

Ребята, помогите найти ошибку в коде (нужно нажать кнопку "отправить"):

Код: Выделить всё

Set he = WebBrowser.Document.body.all("Button")
For Each he In WebBrowser.Document.GetElementById("UnderPhotoLinkDiv").GetElementsByTagName("submit")
            If he.Value = "Отправить" Then
                he.Click
                Exit For
            End If
        Next
Вот кусок html-кода из IE:

Код: Выделить всё

<td align=right width=100%><input class=no type=submit value="Отправить></td>
</table>
</td></tr>
</table>
<input type=hidden name=SEND_MESSAGE value=YES></form>
 
</td></table>
</div>
<!-- end box Составить и отправить новое сообщение -->
<p></p></div>
 
<!-- CONTENT (Составить и отправить новое сообщение) [END] -->
Мой код не работает
jaroslav
Сообщения: 45
Зарегистрирован: 07 дек 2009, 13:25

25 фев 2015, 08:53

Вот решение, предоставленное коллегой dooberom:

Код: Выделить всё

 For Each he In WebBrowser.Document.GetElementsByTagName("input")  
                If he.Type = "submit" Then  
                    If he.Value = "Отправить" Then  
                        he.Click  
                        Exit For  
                    End If  
                End If  
            Next
Ответить