You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I'm using the Selenium PowerShell Module to automate HP Warranty check because HP doesn't provide an API like all other manufacturers.
I would like to retrieve the URL of the webdriver once it has checked the warranty.
Here's the function in my script doing the warranty check :
function CheckWarranty {
param(
[Parameter(Mandatory=$true)]
[string]$EdgeDriverPath,
[Parameter(Mandatory=$true)]
[string]$SerialNumber
)
# Environnement Selenium
Import-Module "$($EdgeDriverPath)\WebDriver.dll"
# Créer un objet EdgeOptions pour configurer le navigateur Edge
#$EdgeOptions.AcceptInsecureCertificates = $True
# Créer l'objet du pilote du navigateur Edge
$EdgeDriver = New-Object OpenQA.Selenium.Edge.EdgeDriver -ArgumentList $EdgeDriverPath
# Définir l'URL de la page de vérification de la garantie HP
$warrantyCheckURL = "https://support.hp.com/fr-fr/checkwarranty"
# Vérifier la garantie HP avec Selenium
$EdgeDriver.Url = $warrantyCheckURL
Write-Host "Vérification de la garantie HP..."
Start-Sleep -Seconds 3
$acceptButton = $null
try {
$acceptButton = $EdgeDriver.FindElementById('onetrust-accept-btn-handler')
}
catch {
# Fermer le navigateur si le bouton est introuvable
Write-Host "Le bouton 'Accept Cookies' est introuvable."
$EdgeDriver.Quit()
throw
}
# Vérifier si le bouton est visible, cliquable et non obstrué
if ($acceptButton.Displayed -and $acceptButton.Enabled) {
$acceptButton.Click()
}
else {
# Fermer le navigateur si le bouton n'est pas clickable
Write-Host "Le bouton 'Accept Cookies' n'est pas clickable."
$EdgeDriver.Quit()
throw
}
$EdgeDriver.FindElementById("inputtextpfinder").SendKeys("$($SerialNumber)")
$EdgeDriver.FindElementById("FindMyProduct").Click()
Start-Sleep -Seconds 3
**$WarrantyURL = $EdgeDriver.CurrentWindowHandle()**
try {
$DebutGarantie = $EdgeDriver.FindElementByXPath('//*[@id="directionTracker"]/app-layout/app-check-warranty/div/div/div[2]/app-warranty-details/div/div[2]/section/app-left-panel/div/div[5]/div[1]/div[2]').Text
$FinGarantie = $EdgeDriver.FindElementByXPath('//*[@id="directionTracker"]/app-layout/app-check-warranty/div/div/div[2]/app-warranty-details/div/div[2]/section/app-left-panel/div/div[5]/div[3]/div[2]').Text
$FinGarantie = $FinGarantie.Replace("Date de fin", "").Trim()
#Write-Host "La garantie a commencé le $DebutGarantie et s'est terminée le $FinGarantie"
}
catch {
Write-Host "Les dates de garanties ne sont pas à l'emplacement principal, tentative sur un autre emplacement..." -ForegroundColor Yellow
}
try {
# Remplacez ces sélecteurs XPath par ceux correspondant aux autres emplacements où les dates peuvent se trouver
$DebutGarantie = $EdgeDriver.FindElementByXPath('//*[@id="directionTracker"]/app-layout/app-check-warranty/div/div/div[2]/app-warranty-details/div/div[2]/main/div[4]/div/div[2]/div/div/div[1]/div[4]/div[2]').Text
$FinGarantie = $EdgeDriver.FindElementByXPath('//*[@id="directionTracker"]/app-layout/app-check-warranty/div/div/div[2]/app-warranty-details/div/div[2]/main/div[4]/div/div[2]/div/div/div[1]/div[5]').Text
$FinGarantie = $FinGarantie.Replace("Date de fin", "").Trim()
#Write-Host "La garantie a commencé le $DebutGarantie et s'est terminée le $FinGarantie"
}
catch {
# Fermer le navigateur si la garantie ne peut pas être récupérée"
$EdgeDriver.Quit()
Start-Sleep -Seconds 1
}
finally {
if ($null -eq $DebutGarantie -or $null -eq $FinGarantie) {
Write-Host "Impossible de récupérer les dates de début et de fin de la garantie." -ForegroundColor Red
throw
}
else {
Write-Host "La garantie a commencé le $DebutGarantie et s'est terminée le $FinGarantie"
}
}
# Fermer le navigateur
$EdgeDriver.Quit()
return @{
'DebutGarantie' = $DebutGarantie
'FinGarantie' = $FinGarantie
}
}
As you can see I'm trying with the CurrentWindowsHandle but if you have any suggestions I'm curious to know them !
Thank You
The text was updated successfully, but these errors were encountered:
Hi,
I'm using the Selenium PowerShell Module to automate HP Warranty check because HP doesn't provide an API like all other manufacturers.
I would like to retrieve the URL of the webdriver once it has checked the warranty.
Here's the function in my script doing the warranty check :
function CheckWarranty {
param(
[Parameter(Mandatory=$true)]
[string]$EdgeDriverPath,
[Parameter(Mandatory=$true)]
[string]$SerialNumber
)
}
As you can see I'm trying with the CurrentWindowsHandle but if you have any suggestions I'm curious to know them !
Thank You
The text was updated successfully, but these errors were encountered: