Re[7]: Как управлять внешним WebView2 ?
От: Doom100500 Израиль  
Дата: 18.01.26 12:27
Оценка: 4 (1)
Здравствуйте, Victor Ivanidze, Вы писали:


D>>IMHO:

D>>Два пути: либо управлять мышью и клавиатурой через (если Windows) SendInputs, либо писать юнит тесты через selenium (например так).

VI>Виноват. Я плохо сформулировал изначально. На самом деле хочется имеющееся web browser extension привязать к "внутреннему" WinWiew2. Это в принципе возможно?


Чесно сказать, не знаю, что такое Web Browser Extension, но я вот посмотрел WebView2 getting started, и там есть такой код:

    webview->add_NavigationStarting(Callback<ICoreWebView2NavigationStartingEventHandler>(
                            [](ICoreWebView2* webview, ICoreWebView2NavigationStartingEventArgs* args) -> HRESULT {
                                wil::unique_cotaskmem_string uri;
                                args->get_Uri(&uri);   // здесь
                                std::wstring source(uri.get());
                                if (source.substr(0, 5) != L"https") {
                                    args->put_Cancel(true);
                                }
                                return S_OK;
                            }).Get(), &token);


Теоритически, если есть uri, то можно использовать selenium для тестов.

ПС:
У нас тут взвешивались разные возможности для нового поколения нашей системы. Для web-based вариантов (electron, webview, etc), наш QA, говорит, что интеграционные тесты придётся переписывать с coded UI(система, которая двигает мышь и шлёт нажатия клавиш) на selenium.

Я, по-моему наврал, что у selenium нет UI. UI можно отключать, selenium — это хромиум, управляемый из кода на разных языках, с возможностью манипулировать DOM.
Его ещё используют для парсинга чистых js сайтов, т.к. он выполняет js и рендер.

Всякие ангуляры при создании проекта генерируют тестовый проект с использованием selenium.

Как я увидел, и для Visual Studio есть какая-то интеграция.
Спасибо за внимание
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.