Bonjour,
Il y a un piège dans ta page web, la zone de texte se trouve à l'intérieur d'une iframe qui est une sorte de page web à l'intérieur d'une page web :
<iframe id="servicetabs-1" class="servicetabcontent" src="/services/SignalP-6.0/1-Submission.php" style="display: block; overflow: scroll;">
Pour accéder aux éléments qui sont dedans il faut partir de cet élément.
D'autre part la zone de texte où tu veux écrire est un textArea qui possède un id :
<textarea id="fasta" name="fasta" class="form-control" ng-model="fasta" placeholder="Enter protein sequence(s) in fasta format..." rows="10" cols="64">
donc on peut référencer cet élément à partir de son id (qui est unique).
Voici donc un code qui devrait fonctionner :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Sub VBAExcel()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim IFrame As HTMLFrameElement
Dim InputZoneTexte As HTMLTextAreaElement
'Chargement d'une page Web Google
IE.navigate "https://services.healthtech.dtu.dk/service.php?SignalP"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
WaitIE IE
'On pointe le membre Document
Set IEDoc = IE.Document
'On pointe notre Zone de texte
Set IFrame = IE.Document.getElementsByTagName("iframe").Item("servicetabs-1")
Set InputZoneTexte = IFrame.contentDocument.getElementById("fasta")
'On définit le texte que l'on souhaite placer à l'intérieur
InputZoneTexte.Value = "text"
'On attend la fin de la recherche
WaitIE IE
'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing
End Sub
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub |
Nullosse, le plus nul des programmeurs
Partager