Excel VBA e Selenium

Anonimo
2022-11-14T16:13:23+00:00

Salve, e buongiorno a tutti.

Mi sto cimentando con una macro per scaricare il rating di obbligazioni quotate in borsa dal sito di Standard Poor's. Giusto per imparare volevo farlo con Selenium , quindi ho improvvisato questa macro che però mi si impunta , con errore, quando devo selezionare "ISIN . "

Questa la macro :

Option Explicit

Sub prova() Dim Dd As New ChromeDriver Dim elements As Selenium.WebElements Dim element As Selenium.WebElement

Dim btn As Selenium.WebElement
Dim btn1 As Selenium.WebElement
With Dd
    .Start "chrome"
    Dd.Window.Maximize
    .Get "https://disclosure.spglobal.com/ratings/en/regulatory/ratings-actions"
  
    Set btn1 = Dd.FindElementByCss("#onetrust-accept-btn-handler") ' accetta all cookies
    btn1.Click
    Application.Wait (Now + TimeValue("00:00:02"))
    
    Set btn = Dd.FindElementByCss(".button\_\_search") ' pulsante di ricerca
    btn.Click
    Application.Wait (Now + TimeValue("00:00:02"))

 ' qui sotto dovrebbe fare la selezionare "Isin"
 
  Dd.FindElementByCss (".search-input\_\_radio")
 Dd.FindElementByCss("0").Click                 ' qui va in errore  32
    Stop
 
End With

End Sub

*** il moderatore sposta il post nella categoria di forum appropriata. ***

Microsoft 365 e Office | Excel | Altro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

1 risposta

Ordina per: Più utili
  1. Anonimo
    2022-11-16T11:52:54+00:00

    ho risolto come segue :

    Option Explicit
    
    Sub prova()
        Dim Dd As New ChromeDriver
        Dim elements As Selenium.WebElements
        Dim element As Selenium.WebElement
    Dim ws1 As Worksheet
        Dim uR As Long, i As Integer
        Dim myIsin As String
        Dim btn As Selenium.WebElement
        Dim btn1 As Selenium.WebElement
        Dim btn2 As Selenium.WebElement
        Dim btn3 As Selenium.WebElement
        
        Set ws1 = Sheets("Isin")
         ws1.Activate
        uR = ws1.Cells(Rows.Count, 1).End(xlUp).Row
        Range("B1") = ("Rating")
        ws1.Range("B2:B" & uR).Clear
             
        ' converti isin a maiuscolo
        Dim x As Object
        For Each x In Range("A2:A" & uR)
            x.Value = UCase(x.Value)
        Next
          
        With Dd
            .Start "chrome"
              .Window.Maximize
                  .Get "https://disclosure.spglobal.com/ratings/en/regulatory/ratings-actions"
                        
            Set btn1 = Dd.FindElementByCss("#onetrust-accept-btn-handler") ' accetta all cookies
            btn1.Click
            Application.Wait (Now + TimeValue("00:00:02"))
            
             Set btn = Dd.FindElementByCss(".button__search") ' pulsante di ricerca
            btn.Click
            Application.Wait (Now + TimeValue("00:00:02"))
     
          .FindElementByCss (".search-input__radio")    ' qui seleziona "Isin"
              Set btn2 = Dd.FindElementByXPath("//*[@id='search-input__options']/div[2]/ul/li[4]/p/label")
            btn2.Click
          
          ' inserisce l'isin prelevandolo da foglio Isin
          For i = 2 To uR
                   myIsin = ws1.Range("A" & i)
               .FindElementByCss("#consolidate_search_input").SendKeys myIsin      ' la definizione nella parentesi trovata in copia json
                Application.Wait (Now + TimeValue("00:00:02"))
                                        end with
    end sub
    

    La risposta è stata utile?

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento