Ho abbandonato te e tutti gli altri perche' in viaggio.
Premesso che per ottenere risultati coerenti con la tua descrizione ho dovuto modificare un paio di testi (le mie visualizzazioni son in Italiano, le tue penso in Inglese), pero' alla fine io ottengo un listato di 19 nomi:
- Codice: Seleziona tutto
Sugita Yuichi (JPN) (66)
Tsonga Jo-Wilfried (FRA) (62)
Zverev Alexander (DEU) (62)
Zeballos Horacio (ARG) (64)
Cuevas Pablo (URY) (23)
Donaldson Jared (USA) (79)
Pouille Lucas (FRA) (17)
Berdych Tomas (CZE) (14)
Bautista-Agut Roberto (ESP) (17)
Thiem Dominic (AUT) (9)
Edmund Kyle (GBR) (49)
Young Donald (USA) (71)
Basilashvili Nikoloz (GEO) (87)
Khachanov Karen (RUS) (51)
Baghdatis Marcos (CYP) (36)
Darcis Steve (BEL)
Millot Vincent (FRA)
Troicki Viktor (SRB) (28)
Sock Jack (USA) (22)
Che e' quello che credo tu ti aspettassi
Tuttavia....
Ho visto che per circa 500 msec dopo il click persiste in memoria un IE.document con 25 elementi "main_oddsKO", che produrrebbero un output di 7 nominativi:
- Codice: Seleziona tutto
Sugita Yuichi (JPN) (66)
Tsonga Jo-Wilfried (FRA) (62)
Zverev Alexander (DEU) (62)
Zeballos Horacio (ARG) (64)
Cuevas Pablo (URY) (23)
Donaldson Jared (USA) (79)
Pouille Lucas (FRA) (17)
Quindi se il tuo Pc fosse particolarmente carico o particolarmente "scarso", e l'elenco che ottieni e' simile a questo secondo, allora dovrai aumentare l'attesa a ben piu' di 2 secondi; prova incrementando di 1 secondo alla volta e poi pero' aggiungi un paio di secondi al primo ritardo buono.
La buona notizia e' che l'unica attesa da mantenere e' quella dopo l'ultimo click; mentre quelli relativi ai click precedenti puoi eliminarli. Cioe' (esempio):
- Codice: Seleziona tutto
'SELEZIONO IL BIENNIO COSTITUITO DALL'ANNO ATTUALE E QUELLO PRECEDENTE
For Each elem In total_input
If elem.Name = "time_t" And elem.Value = 2 Then
elem.Click
'Qui ho eliminato il ciclo di attesa
Exit For
End If
Next elem
Mentre sul click "finale":
- Codice: Seleziona tutto
'PREMO IL PULSANTE VERDE CHE ABILITA LA RICERCA
For Each elem In total_input
If elem.Value = "show matches and statistics for selected options" Then
elem.Click
Debug.Print ">>> Il mio click" '***
End If
Next elem
mystart = Timer
Do
DoEvents
If Timer > mystart + 4 Or Timer < mystart Then Exit Do
Loop
'CREO LA COLLEZIONE DELLE RIGHE RIGUARDANTI LE SCONFITTE DEL GIOCATORE
Set righe = ie.document.getElementsByClassName("main_oddsKO")
'Etc etc
Ma se il comportamento non cambia con tempi max di 6 sec io direi che e' possibile che la tua ricerca dei controlli da cliccare potrebbe essere inesatta; quindi controlla nella finestra Immediata per la presenza di una riga contenente ">>> Il mio click" (prodotta dall'istruzione marcata ***, sopra): se manca allora ti direi di inserire questo Debug.Print:
- Codice: Seleziona tutto
For Each elem In total_input
Debug.Print elem.Value, Timer '<<< Debug aggiunto
If elem.Value = "show matches and statistics for selected options" Then
elem.Click
'etc etc
In questo modo nella finestra immediata potrai leggere il valore dei vari elementi che analizzi per capire quale e' il vero valore di quello da cliccare. Valore che comunque puo' essere letto tramite il comando "Analizza elemento" del browser.
Nel mio caso il valore era
- Codice: Seleziona tutto
mostra incontri e statistiche per le opzioni
selezionate
Su DUE righe; per puntarlo ho usato
- Codice: Seleziona tutto
If elem.Value = "mostra incontri e statistiche per le opzioni " & Chr(10) & "selezionate" Then
(invece del tuo If elem.Value = "show matches and statistics for selected options" Then)
Ciao