Перехват событий google analytics и yandex metrika
Чтобы перехватить события GA и YM воспользуетесь специальными методами.
await tester.AssertNetworkEventsAsync(true, new string[] {
"ec=ga_category", "ea=ga_action", "el=ga_label", "yandex_event"
});
await Helper.ClearBrowserNetworkLogs(tester); // очистка событий
Еще один способ перехватить событие YM это использовать ?_ym_debug=1 в адресе и обработка событий браузера.
Файл: ExampleTest7.cs |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.IO; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; using Newtonsoft.Json; using HatFramework; namespace Hat { public class ExampleTest5 { Tester tester; // Главная переменная для работы автотеста List<string> events; // Переменная в которую собираются все события браузера // Главная входная функция (с этой функции начинается работа автотеста) public async void Main(Form browserWindow) { tester = new Tester(browserWindow); // Инициализация главной переменной await setUp(); // Функция начала работы с автотестом await test(); // Функция выполнения действий теста await tearDown(); // Функция завершения работы с автотестом } // Функция которая слушает события браузера private void browserConsoleEvents(object sender, Microsoft.Web.WebView2.Core.CoreWebView2DevToolsProtocolEventReceivedEventArgs e) public async Task setUp() { await tester.BrowserFullScreenAsync(); // Устанавливает разрешение браузер на весь экран /* * Включим прослушивание событий браузера tester.BrowserView.CoreWebView2.GetDevToolsProtocolEventReceiver("Log.entryAdded").DevToolsProtocolEventReceived += browserConsoleEvents; } public async Task test() { await tester.TestBeginAsync(); // Начало выполнения действий await tester.GoToUrlAsync("https://test.site.com/?_ym_debug=1", 5); // Загрузка страницы с включенной отладкой YM событий await tester.SetValueInElementAsync(Tester.BY_XPATH, "//input[@id='SECOND_NAME']", Helper.TestName); // Проверка события YM в списке событий браузера await tester.TestEndAsync(); // Завершение выполнения действий } public async Task tearDown() { await tester.BrowserCloseAsync(); // Закрывает браузер } } } |
Таким образом автотест слушает все события браузера и после выполнения действий просматривает все события в поисках YM.
Если событие YM будет найдено тест считается успешным.
Created with the Personal Edition of HelpNDoc: Easily create Help documents