Автоматизация пользовательского интерфейса для браузера CefSharp Wpf, размещенного в WPF usercontrol
У нас есть приложение WPF, в котором мы используем браузер CefSharp. В приложении есть несколько окон wpf, в которые мы встраиваем браузер CefSharp. Проблема, с которой мы столкнулись, касается автоматизации. Мы уже пробовали CUIT(Coded Ui Test) и Selenium - никто не может идентифицировать элемент управления в браузере CefSharp. Мы видим, что CUIT идентифицирует содержимое браузера CefSharp как изображение. Также мы попытались выставить автоматическую загрузку из CefSharp из пользовательского элемента управления, в который она включена. Однако мы обнаружили, что CefSharp не предоставляет никакой автоматики для WPF - мы получили нулевое значение, когда попытались извлечь автоматизатор из управления браузером CefSharp. Мой вопрос - возможно ли сделать автоматизацию для браузера CefSharp, который размещен внутри элемента управления wpf? Если да, то какой должен быть подход - какой-либо конкретный технологический стек и / или какие-либо настройки для управления браузером CefSharp? Мы используем VS 2015 для приложения WPF и CefSharp.Wpf 49.0.1
1 ответ
Я решил проблему (автоматизация CEF# Embedded в приложении WPF), выполнив следующие действия:
Определите порт отладки в приложении.net (при запуске), на котором размещен встроенный веб-браузер cef:
var settings = new CefSettings { RemoteDebuggingPort = 8088 };
Cef.Initialize(settings);
В конфигурационном файле Protractor (это как Selenium - еще один инструмент, который мне больше всего нравится) этот полный адрес отладки "ip: port" должен быть определен в разделе "Возможности".
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['./tests.spec.js'],
capabilities: {
'browserName': 'chrome',
'chromeOptions': {'debuggerAddress': "127.0.0.1:8088" }
// debugger Address : An address of a Chrome debugger server to connect to, in the form of <hostname/ip:port>, e.g. localhost:8088
}}
Запустите приложение.net и войдите на экран с помощью веб-браузера.
Запустите protractor configuration.js (это запустит тесты, написанные в./tests.spec.js)