#powershell #selenium-webdriver #microsoft-edge-chromium
#powershell #selenium-webdriver #microsoft-edge
Вопрос:
Я ищу способ подключиться к существующему сайту в Microsoft Edge с помощью PowerShell и иметь возможность оставлять его открытым в течение всего дня на компьютере пользователя для использования несколько раз в день. URL-адрес, по которому перемещается код, представляет собой веб-приложение, в котором они записывают информацию, которую они собрали о проекте, над которым они работают. Так он записывает их производительность, чтобы руководители могли видеть, сколько они делают за день. Я нашел решение на YouTube, которое позволяет мне открыть страницу входа на сайт. Но, как только они войдут в систему, мой код скажет «Дублировать или обновить сайт» вместо того, чтобы разрешить пользователю выполнять ту же задачу, которую они выполняли при последнем запуске скрипта. Вот что у меня есть:
$ScriptPath = "C:Userslpeder6DocumentsPowerShellSelenium"
Add-Type -Path "$ScriptPathWebDriver.dll"
$Edge = New-Object OpenQA.Selenium.Edge.EdgeDriver
$Edge.Navigate().GoToUrl('http://omega2010.com')
Все советы по сайтам, которые я видел, касались Python, C # и других языков программирования. Я ищу версию этого для PowerShell. Из того, что я видел, мне нужно получить дескриптор окна, а затем использовать его при переходе по URL-адресу. Я хочу сказать, что это близко, но я не уверен, как это реализовать:
Get-Process -Name '*edge*' | Where-Object { $_.MainWindowHandle -gt 0 }
Я также пытаюсь использовать следующий код, но, как только я доберусь до WindowHandles, я не уверен, что использовать для повторного использования дескриптора при переходе к URL.
$Handle = $Edge.WindowHandles.[numerous options, but unsure which to use]
$Edge.Navigate().GoToUrl($Handle)
Буду очень признателен за любые советы или ресурсы, указывающие мне правильное направление. Я попытался задать тот же вопрос в SQA Stack Exchange, но они сказали, что его следует задать здесь, поскольку они считают, что это не «тестирование». Я рассматриваю это тестирование, поскольку решение еще не запущено в производство.
Комментарии:
1. Я немного сбит с толку вашим требованием. После того, как вы получите дескриптор окна Edge, что вы хотите сделать? Перенаправление на другой сайт? Или что-то еще?
2. @XudongPeng Я почувствовал, что очень ясно выразился в предложении над последним примером кода: «Я также пытаюсь использовать следующий код, но, как только я доберусь до WindowHandles, я не уверен, что использовать для повторного использования дескриптора при переходе по URL». Даже заголовок запрашивает помощь при повторном использовании одного и того же окна браузера. Обратите внимание на окно браузера, в котором мы общаемся. Если я хочу повторно использовать это окно для запуска скрипта, который добавляет еще один комментарий, как мне это сделать с помощью PowerShell и Selenium? Извините, если я кажусь вам язвительной. Я пытаюсь внести ясность и получить помощь в решении этого вопроса. Отчаянно нуждался.
3. Насколько я знаю, если вы хотите реализовать автоматизацию веб-страниц с помощью selenium, вам нужно использовать webdriver для открытия веб-страницы. Так что в этом случае, если вы хотите реализовать это с существующими веб-страницами в Edge, я думаю, вы можете попробовать win32 api для достижения этого требования. Просто обратитесь к этому делу .
4. Я пробовал это, но он использует
GetForegroundWindow
. Это было бы хорошо, если бы окно браузера было отправной точкой моего процесса. Но это конечная точка, поэтому мне нужно собрать данные (скажем, из электронной таблицы Excel), найти окно браузера, которое у меня уже открыто, и ввести данные Excel в HTML-форму в открытом браузере. Мне нужно иметь возможность находить открытый браузер для ввода данных, а не открывать его каждый раз, когда я собираю данные. Имеет ли это смысл? Я чувствую, что теряю всех, и это такая простая концепция.