2016-12-13 1 views
0

Je fais un outil de travail qui génère un nouvel élément de projet sur notre point de partage. Sur le point de partage, nous avons un formulaire qui doit être rempli et pour identifier les champs de texte du formulaire, j'utilise la commande IE.Document.All.Item("id").value=value.IE. Document.items.all ne fonctionne pas hta

Cela fonctionne dans un fichier vbs distinct, mais lorsque j'essaie de le lancer à partir de hta, il bloque à la commande IE.Documents.All.item. Est-ce que quelqu'un sait comment résoudre cela?

Le code se présente comme suit (langue: vbscript):

Sub SendProjectData 
    Set IE = CreateObject("InternetExplorer.Application") 
    set WshShell = CreateObject("WScript.Shell") 
    IE.Navigate "https://sharepointpage" 
    IE.Visible = true 
    sleep1 6000 'external defined sleep command' 

    IE.Document.All.Item("projectid").Value = "projectname" 
    WshShell.AppActivate "IE" 
    WshShell.SendKeys "{ENTER}" 
End Sub 

Répondre

0

Mmmh, je travaille avec:

oIe.document.getElementById("testMsgBox").value = "hallo" 

ou

oIE.document.all.testMsgBox.value = "hallo" 

Peut-être que aide, Reinhard

+0

Salut Reinhard, Merci pour la réponse. Cependant, cela ne semble pas fonctionner car il provoque toujours l'erreur: "erreur non spécifiée". Peut-être que c'est le ".document.", Peut-être qu'il n'est pas défini pour vbscript lors de l'utilisation de hta – Patty

+0

Je suis juste perplexe. Le champ de texte est-il à l'intérieur du hta? Ensuite, vous pouvez accéder à l'élément avec juste leur ID ou leur nom, donc 'projectid.Value = "nomprojet"' devrait fonctionner. Ou est le champ de texte dans un autre fichier html et vous voulez le remplir à partir d'un fichier hta en utilisant le code vbs? – ReFran

+0

Salut ReFran, le champ de texte est dans un site Web tiers et j'essaie de le remplir avec l'entrée de mon propre hta local. J'ai travaillé autour d'elle en sauvant mon entrée dans un fichier txt et exécuter le vbs qui remplit les champs de texte (maintenant en analysant le fichier texte) sur le site en dehors de l'environnement hta – Patty

0

Cela devrait fonctionner. Testé sous Win10 avec IE11:

d'abord le fichier de test HTML:

<html> 
    <head><title>MyInputFile</title></head> 
    <body> 
    <h1>IE with Input field</h1> 
    <input type="text" id="myText" value="Default text" size="20"> 
    </body> 
</html> 

Maintenant, le fichier HTA pour remplir le fichier html:

<html> 
<head> 
<title>Hypertext-Application Demo</title> 
<HTA:APPLICATION ID="oHTA"> 
<script language="vbscript"> 
    sub Window_Onload 
     self.resizeto 500,200 
     self.MoveTo 50,50 
    End Sub 

    Sub fillHta() 
     myText.value = "New Text" 
    End Sub 

    Sub startAndFill() 
     set wsh = CreateObject("WScript.Shell") 
     'Set oIE = CreateObject("InternetExplorer.Application") 
     Set oIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}") 
     oIE.Navigate "d:\MyInputFile.html" 
     oIE.Visible = true 
     Do: Loop Until oIE.Busy = False 
     Do: Loop Until oIE.Document.ReadyState = "complete" 

     oIe.document.getElementById("myText").value = "New Text" 'use this 
     x = oIe.document.getElementById("myText").value 
     oIE.document.all.myText.value = x & "; New Text2" 'or this 
    End Sub 
</script> 
</head> 
<body bgcolor="#99CCFF"> 
<p>Simple Demo of Hypertext Applikationen</p> 
<input type="button" value="Fill HTA input field" onclick="fillHta()"> 
<input type="text" id="myText" value="Default text" size="20"> 
<p><input type="button" value="start and fill IE field" onclick="startAndFill()"> D:\MyInputFile.html</p> 
</body> 
</html> 

Profitez, Reinhard