Автоматизация пользовательского интерфейса для браузера 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)

Другие вопросы по тегам