Веб — драйвер Selenium и встроенный браузер в Winform- Как подключить экземпляр web_driver?

#selenium #webdriver

Вопрос:

Мне нужно подключить/создать экземпляр Selenium Webdriver к веб-контенту, который мое тестируемое приложение открывает в Winform.

Моя тестовая платформа открывает приложение Winform с помощью CodedUI, и дальнейшие шаги тестирования заставляют приложение Winform открывать другое окно Winform, в которое встроен браузер. Мне нужно создать или привязать экземпляр Selenium к этому встроенному содержимому браузера. Он использует WebViewer/Edge во встроенной области.

Примечание — Еще не готов перейти на WinAppDriver, если вообще когда-либо будет.

Ответ №1:

Решил эту проблему. Я узнал, что веб-панель-это объект, называемый WebView2.

Автоматизация внутри него требует, чтобы приложение запускалось особым образом:

 Dim AppPath As String = "[full path to your app and its name].exe"

Dim edgeOptions As New EdgeOptions

edgeOptions.UseChromium = True
edgeOptions.UseWebView = True

edgeOptions.DebuggerAddress = "localhost:9222"

Dim AppStartInfo = New ProcessStartInfo(AppPath)
         
AppStartInfo.UseShellExecute = False
AppStartInfo.EnvironmentVariables("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS") = "--remote-debugging-port=9222"

Diagnostics.Process.Start(AppStartInfo) 
 

Вам также нужно:

И, наконец, в вашем коде автоматизации, когда наконец появится окно с WebView2, вам нужно запустить этот код, чтобы привязать selenium webdriver к панели WebView2:

 Dim driver As String = "[path to:]msedgedriver.exe"

Dim edgeOptions As New EdgeOptions

edgeOptions.UseChromium = True
edgeOptions.UseWebView = True

edgeOptions.DebuggerAddress = "localhost:9222"

Dim WebDriver = New EdgeDriver(EdgeDriverService.CreateDefaultService(".", driver), edgeOptions)