From 0006165e8775e6388b200baaee71d3334ccb2543 Mon Sep 17 00:00:00 2001 From: Alex Kup <116945542+Lifailon@users.noreply.github.com> Date: Thu, 19 Oct 2023 19:14:40 +0300 Subject: [PATCH] add try-finally --- Modules/Get-FreeGPT.psm1 | 21 ++++++++++++++++----- Modules/Get-SpeedTest.psm1 | 12 +++++++++--- Modules/Get-Translate.psm1 | 11 +++++++---- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/Modules/Get-FreeGPT.psm1 b/Modules/Get-FreeGPT.psm1 index 9ee452d..131fad9 100644 --- a/Modules/Get-FreeGPT.psm1 +++ b/Modules/Get-FreeGPT.psm1 @@ -8,16 +8,21 @@ param ( $path = "$home\Documents\Selenium\" $ChromeDriver = "$path\ChromeDriver.exe" $WebDriver = "$path\WebDriver.dll" +$SupportDriver = "$path\WebDriver.Support.dll" $Chromium = (Get-ChildItem $path -Recurse | Where-Object Name -like chrome.exe).FullName Add-Type -Path $WebDriver +Add-Type -Path $SupportDriver +try { $ChromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions $ChromeOptions.BinaryLocation = $Chromium $ChromeOptions.AddArgument("start-maximized") $ChromeOptions.AcceptInsecureCertificates = $True $ChromeOptions.AddArgument("headless") $Selenium = New-Object OpenQA.Selenium.Chrome.ChromeDriver($ChromeDriver, $ChromeOptions) -$Selenium.Navigate().GoToUrl("$Url") > $null +$Selenium.Navigate().GoToUrl("$Url") Start-Sleep 1 +$Limit = $Selenium.FindElements([OpenQA.Selenium.By]::ClassName("quota-wrapper")).Text +Write-Host "Limit: $Limit" -ForegroundColor Green $textarea = $Selenium.FindElements([OpenQA.Selenium.By]::TagName("textarea")) $textarea.SendKeys($text) $button = $Selenium.FindElements([OpenQA.Selenium.By]::TagName("button")) @@ -31,11 +36,17 @@ while ($True) { break } } +} +finally { $Selenium.Close() $Selenium.Quit() } +} -$Result = Get-FreeGPT -Text "22+33" -$Eng = "Hello, my friend" -$Result = Get-FreeGPT -Text "Translate the text into Russian: $Eng" -Write-Host $Result -ForegroundColor Green +# Example 1: +# $Result = Get-FreeGPT -Text "22+33" +# Write-Host $Result -ForegroundColor Green +# Example 2: +# $Eng = "Hello, my friend" +# $Result = Get-FreeGPT -Text "Translate the text into Russian: $Eng" +# Write-Host $Result -ForegroundColor Green diff --git a/Modules/Get-SpeedTest.psm1 b/Modules/Get-SpeedTest.psm1 index d239fa5..f32eba8 100644 --- a/Modules/Get-SpeedTest.psm1 +++ b/Modules/Get-SpeedTest.psm1 @@ -11,11 +11,12 @@ $SupportDriver = "$path\WebDriver.Support.dll" $Chromium = (Get-ChildItem $path -Recurse | Where-Object Name -like chrome.exe).FullName Add-Type -Path $WebDriver Add-Type -Path $SupportDriver +try { $ChromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions $ChromeOptions.BinaryLocation = $Chromium $ChromeOptions.AddArgument("start-maximized") $ChromeOptions.AcceptInsecureCertificates = $True -#$ChromeOptions.AddArgument("headless") +$ChromeOptions.AddArgument("headless") $Selenium = New-Object OpenQA.Selenium.Chrome.ChromeDriver($ChromeDriver, $ChromeOptions) if ($Provider -eq "Ookla") { $Url = "https://www.speedtest.net/" @@ -116,11 +117,16 @@ if ($Provider -eq "Libre") { }) return $Collections } +} +finally { $Selenium.Close() $Selenium.Quit() } +} # Example: -# Get-SpeedTest -Provider Ookla +# Get-SpeedTest -Provider Libre # Get-SpeedTest -Provider Open -# Get-SpeedTest -Provider Libre \ No newline at end of file +# $Test = Get-SpeedTest -Provider Ookla +# $Test | Out-Default +# $Test.additional_servers \ No newline at end of file diff --git a/Modules/Get-Translate.psm1 b/Modules/Get-Translate.psm1 index 07c02b2..7ca68f5 100644 --- a/Modules/Get-Translate.psm1 +++ b/Modules/Get-Translate.psm1 @@ -12,6 +12,7 @@ $SupportDriver = "$path\WebDriver.Support.dll" $Chromium = (Get-ChildItem $path -Recurse | Where-Object Name -like chrome.exe).FullName Add-Type -Path $WebDriver Add-Type -Path $SupportDriver +try { $ChromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions $ChromeOptions.BinaryLocation = $Chromium $ChromeOptions.AddArgument("start-maximized") @@ -22,9 +23,7 @@ $Selenium.Navigate().GoToUrl($Url) Start-Sleep 1 $div = $Selenium.FindElements([OpenQA.Selenium.By]::TagName("div")) $InTextBox = $div | Where-Object ComputedAccessibleRole -Match "TextBox" | Where-Object ComputedAccessibleLabel -Match "Исходный текст" -#$InTextBox = $Selenium.FindElements([OpenQA.Selenium.By]::XPath('//*[@id="headlessui-tabs-panel-7"]/div/div[1]/section/div/div[2]/div[1]/section/div/div[1]/d-textarea/div[1]')) $OutTextBox = $div | Where-Object ComputedAccessibleRole -Match "TextBox" | Where-Object ComputedAccessibleLabel -Match "Переведенный текст" -#$OutTextBox = $Selenium.FindElements([OpenQA.Selenium.By]::XPath('//*[@id="headlessui-tabs-panel-7"]/div/div[1]/section/div/div[2]/div[3]/section/div[1]/d-textarea/div')) $OutTemp = $OutTextBox.Text $InTextBox.SendKeys($text) while ($True) { @@ -33,9 +32,13 @@ while ($True) { break } } +} +finally { $Selenium.Close() $Selenium.Quit() } +} -$Result = Get-Translate -Text "Hello, my friend" -Write-Host $Result -ForegroundColor Green +# Example: +# $Result = Get-Translate -Text "Hello, my friend" +# Write-Host $Result -ForegroundColor Green