Здравствуйте, 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 есть какая-то интеграция.