TUTOS.EU

Automatiser la saisie d'éléments dans une page web en Powershell

Remplir des champs d'un formulaire web et le poster en Powershell

Voici un premier jet de script en powershell ici fait pour une webinterface Citrix.
Le script se connecte sur cette url, se log et check la présence de l'id de la balise html d'une appli. Si l'authentification échoue, le script test de cliquer sur le bouton qui permet de se déconnecter et rente une authentification

$oIE=new-object -com internetexplorer.application
$oIE.visible=$true
$oIE.navigate2("http://monsiteweb.local")
while ($oIE.busy) {sleep -milliseconds 50}
Write-host "On entre le login/mdp"

#$ErrorActionPreference = "Continue"
$ErrorActionPreference = "silentlycontinue" #En cas d'erreur, on ne dit rien et on continu
$DebugPreference = "Continue" #En cas d'erreur, Powershell montrera le message et continuera
$Error.Clear() #Purge des erreurs

#$oTBody=@($oIE.document.getElementsByTagName("TBODY"))[0] ;
$oIE.document.getElementByID("user").value="login";
$oIE.document.getElementByID("password").value="mot de passe";

if($Error.Count -ne 0) #Si on a une erreur
{
	Write-host "Erreur pour entrer le login/mot de passe. On est peut être déjà connecté. On tente une déconnexion"
	$oIE.Stop()

	$($oIE.document.getElementByID("logoutAreaDisconnectLink")).click();
	while ($oIE.busy) {sleep -milliseconds 50}
	$oIE.navigate2("http://monsiteweb.local")
	while ($oIE.busy) {sleep -milliseconds 50}
	$oIE.document.getElementByID("user").value="login";
	$oIE.document.getElementByID("password").value="mot de passe";
}

#$oIE.Document.getElementById("CitrixForm").Submit();
$($oIE.document.Forms)[0].Submit(); #On fait un submit du premier formulaire dispo dans la page
while ($oIE.busy) {sleep -milliseconds 50}

$Error.Clear() #Purge des erreurs
$oIE.document.getElementByID("MonAppli")
Write-host "Erreur ? : $($Error.Count)"

$oIE.Stop()
$oIE.Quit()
Lien vers le fichier : cliquez ici