add selenium
This commit is contained in:
parent
2aae506af8
commit
6462607582
1 changed files with 45 additions and 41 deletions
86
posh.txt
86
posh.txt
|
|
@ -255,6 +255,15 @@ $path[-1..-10] # обратная сборка массива без сорти
|
|||
Get-Process | Sort-Object -Descending CPU | select -First 10 # вывести первых 10 объектов
|
||||
Get-Process | Sort-Object -Descending CPU | select -Last 10 # вывести последних 10 объектов
|
||||
|
||||
### oh-my-posh
|
||||
|
||||
winget install JanDeDobbeleer.OhMyPosh -s winget
|
||||
Get-PoshThemes
|
||||
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/blue-owl.omp.json" | Invoke-Expression # montys,jblab_2021,easy-term,di4am0nd,cinnamon,jtracey93,cert
|
||||
New-Item -Path $PROFILE -Type File -Force
|
||||
notepad $PROFILE
|
||||
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/blue-owl.omp.json" | Invoke-Expression
|
||||
|
||||
### NPP
|
||||
|
||||
pwsh -NoExit -ExecutionPolicy Unrestricted -WindowStyle Maximized -File "$(FULL_CURRENT_PATH)"
|
||||
|
|
@ -392,7 +401,7 @@ $ping = "ping"
|
|||
|
||||
### Специальные символы
|
||||
\d # число от 0 до 9 (20-07-2022 эквивалент: "\d\d-\d\d-\d\d\d\d")
|
||||
\D # обозначает любой символ, кроме цифры. Удаления всех символов, кроме цифр: [int]$("123 test" -replace "\D","")
|
||||
\D # обозначает любой символ, кроме цифры. Удаления всех символов, кроме цифр: [int]$("123 test" -replace "\D")
|
||||
\w # буква от "a" до "z" и от "A" до "Z" или число от 0 до 9
|
||||
\s # пробел, эквивалент: " "
|
||||
\n # новая строка
|
||||
|
|
@ -2489,49 +2498,44 @@ irm http://localhost:8080/api/service -Method Post -Body @{"ServiceName" = "AnyD
|
|||
|
||||
# Selenium
|
||||
|
||||
.\nuget.exe install Selenium.WebDriver
|
||||
Copy-Item -Path .\WebDriver.dll -Destination $home\Documents\Selenium\ # версия 4.9.0 для .NET 4.8
|
||||
Copy-Item -Path .\ChromeDriver.exe -Destination $home\Documents\Selenium\ # скачать драйвер (113.0.5672.63) https://sites.google.com/chromium.org/driver/
|
||||
Invoke-Expression(New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/Lifailon/Deploy-Selenium/rsa/Deploy-Selenium-Drivers.ps1") # установка всех драйверов и Chromium подходящей версии для драйвера
|
||||
|
||||
Choco Upgrade GoogleChrome # обновить Google Chrome
|
||||
Get-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome" | select DisplayName,DisplayVersion,InstallDate,InstallLocation # узнать версию и дату обновления
|
||||
$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
|
||||
$Selenium = New-Object OpenQA.Selenium.Chrome.ChromeDriver($ChromeDriver, $ChromeOptions)
|
||||
$Selenium.Navigate().GoToUrl("https://translate.google.la/")
|
||||
|
||||
$path = "$env:temp\ChromeSetup.exe"
|
||||
Invoke-WebRequest 'https://dl.google.com/chrome/install/latest/chrome_installer.exe' -OutFile $path
|
||||
Start-Process -FilePath $path -Args "/silent /install" -NoNewWindow -Wait
|
||||
|
||||
$selenium.FindElements([OpenQA.Selenium.By]::CssSelector('button')) | select TagName,Text # отобразить все Button по TagName используя CSS selector
|
||||
$selenium.FindElements([OpenQA.Selenium.By]::TagName('button')) # поиск по TagName
|
||||
$selenium.FindElements([OpenQA.Selenium.By]::CssSelector('button')) | ? Text -match "Войти" # поиск Button по содержимому Text
|
||||
$button = $selenium.FindElements([OpenQA.Selenium.By]::CssSelector('*')) | ? Text -like "Войти через Яндекс ID" # поиск во всех элементах по содержимому Text для получения нужного элемента (SPAN) для дальнейшего быстрого поиска
|
||||
|
||||
F12 (Dev Tools) - Ctrl+Shift+C - Copy selector/full XPath
|
||||
$inputbox = $selenium.FindElements([OpenQA.Selenium.By]::CssSelector('#passp-field-login'))
|
||||
$inputbox = $selenium.FindElements([OpenQA.Selenium.By]::XPath("/html/body/div/div/div[2]/div[2]/div/div/div[2]/div[3]/div/div/div/div/form/div/div[2]/div[2]/div/div[2]/span/input"))
|
||||
$inputbox | gm -MemberType method
|
||||
|
||||
$path = "$home\Documents\Selenium"
|
||||
if (($env:Path -split ';') -notcontains $path) {
|
||||
$env:Path += ";$path"
|
||||
$buttons = $selenium.FindElements([OpenQA.Selenium.By]::TagName('button')) # найти все элементы по TagName
|
||||
$buttons = $selenium.FindElements([OpenQA.Selenium.By]::CssSelector('button')) # найти все Button используя CSS selector
|
||||
$Image = $buttons | Where-Object Text -Match "Изображения" # отфильтровать элементы по Label или Text
|
||||
$Image.Click() # нажать на Button
|
||||
$Text = $buttons | Where-Object Text -Match "Текст"
|
||||
$Text.Click()
|
||||
$textarea = $Selenium.FindElements([OpenQA.Selenium.By]::TagName("textarea")) # найти все элементы с тэгом textarea
|
||||
$textarea.Count # количество найденных элементов
|
||||
$text1 = $textarea | Where-Object ComputedAccessibleLabel -like "Исходный текст" # отфильтровать по Lable
|
||||
$text1 = $textarea | Where-Object ComputedAccessibleRole -like combobox # отфильтровать по роли
|
||||
$text1 = $selenium.FindElements([OpenQA.Selenium.By]::ClassName("er8xn")) # найти элемент по имени класса (class="")
|
||||
$text1.SendKeys("Hello") # ввести текст в поле
|
||||
Start-Sleep 1
|
||||
$text2 = $selenium.FindElements([OpenQA.Selenium.By]::ClassName("ryNqvb"))
|
||||
$out = $text2.Text # получить результат перевода из второго textarea
|
||||
Write-Host $out -ForegroundColor Green
|
||||
}
|
||||
finally {
|
||||
$Selenium.Close()
|
||||
$Selenium.Quit()
|
||||
}
|
||||
Import-Module "$path\WebDriver.dll" # Add-Type -Path "$path\WebDriver.dll"
|
||||
$selenium_options = New-Object OpenQA.Selenium.Chrome.ChromeOptions
|
||||
$selenium_options.AddArgument('start-maximized')
|
||||
$selenium_options.AcceptInsecureCertificates = $True
|
||||
$selenium = New-Object OpenQA.Selenium.Chrome.ChromeDriver($selenium_options)
|
||||
# $selenium = New-Object OpenQA.Selenium.Chrome.ChromeDriver
|
||||
$selenium.Navigate().GoToURL('https://yandex.ru')
|
||||
$selenium.FindElements([OpenQA.Selenium.By]::CssSelector('button'))[2].Click() # нажать на кнопку "Войти"
|
||||
$button = $selenium.FindElements([OpenQA.Selenium.By]::CssSelector('SPAN')) | ? Text -like "Войти через Яндекс ID"
|
||||
$button.Click()
|
||||
($selenium.FindElements([OpenQA.Selenium.By]::CssSelector('Button')))[1].Click()
|
||||
$inputbox = $selenium.FindElements([OpenQA.Selenium.By]::CssSelector('input')) | ? ComputedAccessibleRole -like "textbox"
|
||||
$inputbox.Click()
|
||||
$inputbox.Clear()
|
||||
$inputbox.SendKeys("+79997772211")
|
||||
$inputbox.Submit()
|
||||
$selenium.Close()
|
||||
$selenium.Quit()
|
||||
|
||||
# IE
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue