Как проверить, что веб-страница открыта в браузере

#c# #automation #leanft

#c# #автоматизация #leanft

Вопрос:

Я автоматизирую настольное приложение на базе Windows (C #, LeanFT).
Нажатие на кнопку открывает веб-страницу в браузере.
Как я могу проверить, что веб-страница открыта?

Комментарии:

1. Вы делаете что-то эквивалентное Process.Run(url); ? Если это так, то задача OS es — убедиться, что она обработана в соответствии со схемами URL, зарегистрированными в ОС, и запустить соответствующий обработчик URL. В свою очередь, зарегистрированный обработчик (например, браузер) решает, как обрабатывать URL-адрес, который может включать открытие нового окна. Предполагая, что ваша задача не заключается в тестировании ОС, ни для тестирования браузера, тогда просто не делайте этого. Обычно в ваши обязанности не входит тестировать код, написанный третьими сторонами.

Ответ №1:

Два способа:

  1. Грубая сила
    Описывая браузер, который был открыт, который имеет заголовок, URL и другие атрибуты, а затем прикрепляя к нему.
    Проблема с этим подходом заключается в том, что, если браузер не был открыт, он выдаст ошибку, поэтому вам придется try..catch эту ошибку

    Например:

     /* 
     * Desktop related logic that opens a browser 
     */
    
    // Use "Attach" to connect a new (or replacement) browser tab with the LeanFT test.
    try {
        IBrowser yourPage = BrowserFactory.Attach(new BrowserDescription
        {
            Title = "The title of the page",
            Url = "https://thesitethatwasopened.com"
        });
    } catch (Exception ex) {
        // the browser was not opened
    }
    
    /* 
     * Rest of the desktop app actions 
     */
      
  2. Перебор всех открытых браузеров
    Вам все равно понадобится то же описание, но таким образом вы можете либо вообще не использовать браузеры, что означает, что страница не была открыта, либо один или несколько браузеров — в любом случае это не выдает ошибку, поэтому вы можете назвать это «более чистым» способом:

    Например:

     /* 
     * Desktop related logic that opens a browser 
     */
    
    // Use "GetAllOpenBrowsers" to get a collection of IBrowser instances that matches the description
    IBrowser[] yourPages = BrowserFactory. GetAllOpenBrowsers(new BrowserDescription
    {
        Title = "The title of the page",
        Url = "https://thesitethatwasopened.com"
    });
    
    /* 
     * Rest of the desktop app actions (maybe by making use of yourPages.Count
     */