Initialize.ps1

$NuGetUrl = "https://api.nuget.org/v3/index.json"
$Resources = @(
    @{ Name = "Selenium.WebDriver"; Version = "4.38.0"; Import = @("lib\net8.0\WebDriver.dll") },
    @{ Name = "Selenium.Support"; Version = "4.38.0"; Import = @("lib\netstandard2.0\WebDriver.Support.dll") }
)
try {
    # register nuget repo
    if (!(Get-PSResourceRepository | Where-Object { $_.Uri -eq $NuGetUrl })) {
        Register-PSResourceRepository -Name NuGetGallery -Uri $NuGetUrl -Priority 80 -Trusted -Force -ErrorAction Stop
    }
    # install
    foreach ($resource in $Resources) {
        if (!(Get-InstalledPSResource -Name $resource.Name -Version $resource.Version -ErrorAction SilentlyContinue)) {
            Install-PSResource $resource.Name -Version "[$($resource.Version)]" -Scope CurrentUser -TrustRepository -AcceptLicense -SkipDependencyCheck -ErrorAction Stop
        }
    }
    # import
    foreach ($resource in $Resources) {
        $path = (Get-InstalledPSResource -Name $resource.Name -Version $resource.Version -ErrorAction Stop).InstalledLocation
        foreach ($item in $resource.Import) {
            Import-Module "$path\$($resource.Name)\$($resource.Version)\$item" -Global -Force -ErrorAction Stop
        }
    }
    # manager
    $resource = $Resources | Where-Object { $_.Name -eq "Selenium.WebDriver" }
    $path = (Get-InstalledPSResource -Name $resource.Name -Version $resource.Version -ErrorAction Stop).InstalledLocation
    $env:SE_MANAGER_PATH = "$path\$($resource.Name)\$($resource.Version)\runtimes\win\native\selenium-manager.exe"
}
catch { throw }