Как мне нажать кнопку поиска в финансах Yahoo - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь упростить электронную таблицу и хотел бы получить вашу помощь.У меня есть следующий код, где я ищу акции APPL в финансах Yahoo.Как мне нажать на кнопку?Я считаю, что проблема, с которой я столкнулся, это «кнопка поиска» в последней строке кода.

Sub browsetosite()

    Dim IE As New SHDocVw.InternetExplorer

    IE.Visible = True
    IE.navigate "www.finance.yahoo.com"

    Do While IE.ReadyState <> READYSTATE_COMPLETE
    Loop
    Debug.Print IE.LocationName, IE.LocationURL

   IE.Document.forms("input").elements("yfin-usr-qry").Value = "APPL"
   IE.Document.forms("input").elements("**search-button**").Click

End Sub

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Я не нашел требования для ожидания или сосредоточения.Используйте идентификаторы для максимально возможного таргетинга, а CSS-селекторы намного быстрее, чем ваш текущий синтаксис.

Option Explicit
Public Sub BrowseToSite()
    Dim IE As SHDocVw.InternetExplorer
    Set IE = New SHDocVw.InternetExplorer
    With IE
        .Visible = True
        .Navigate2 "www.finance.yahoo.com"

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

        With .document
            .querySelector("[name='yfin-usr-qry']").Value = "APPL"
            .querySelector("#search-button").Click
        End With
        While .Busy Or .readyState < 4: DoEvents: Wend
    End With
End Sub
0 голосов
/ 29 ноября 2018

Хорошо, после тестирования, похоже, проблема в том, что страница Yahoo загружает лот вещей.

Я добавил десять секунд ожидания, прежде чем вы добавите Stock Symbol.Поиграйте с таймингом, вы, скорее всего, можете его немного сократить.

Sub browsetosite() 
   Dim IE As New SHDocVw.InternetExplorer

   IE.Visible = True
   IE.navigate "www.finance.yahoo.com"

   Do While IE.ReadyState <> READYSTATE_COMPLETE
   Loop
   Application.Wait (Now + TimeValue("00:00:10"))
   IE.Document.forms("input").elements("yfin-usr-qry").Value = "APPL"
   IE.Document.forms("input").elements("search-button").Focus
   IE.Document.forms("input").elements("search-button").Click
End Sub

Но, как уже упоминалось выше, если вы знаете символы, которые вы хотите найти, вам, скорее всего, будет лучше вместо того, чтобы просто перейти непосредственно кhttps://finance.yahoo.com/quote/[SYMBOL]

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