Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help opening certain Chrome tab
#18
Code:
Copy      Help
// script "Chrome switch to tab by URL.cs"
//example
print.clear();
var r = Chrome.ActivateTabByURL("*libreautomate.com*") ?? throw new NotFoundException();
print.it(r.url);

class Chrome {
    /// <summary>
    ///
Finds Chrome tab by URL, and activates it.
    /// Searches in all Chrome windows.
    /// </summary>
    ///
<param name="url">URL. Format: wildcard expression.</param>
    ///
<param name="activateWindow">Activete the Chrome window. Default true.</param>
    ///
<returns>Tab info; null if not found.</returns>
    ///
<exception cref="Exception">Something failed.</exception>
    ///
<remarks>
    ///
Temporarily activates each tab (to get its URL) until finds the specified tab. There is no way to avoid it; even Selenium cannot get URL of inactive tabs.
    /// </remarks>
    public static ATBUResult ActivateTabByURL(string url, bool activateWindow = true) {
        wildex wx = url;
        foreach (var w in wnd.findAll("*Google Chrome", "Chrome_WidgetWin_1")) {
            if (_ATBU_Window(w, wx, activateWindow) is { } r) return r;
        }

        return null;
    }

    
    /// <summary>
    ///
Finds Chrome tab by URL, and activates it.
    /// </summary>
    ///
<param name="wChrome">Chrome window.</param>
    ///
<param name="url">URL. Format: wildcard expression.</param>
    ///
<param name="activateWindow">Activete the Chrome window. Default true.</param>
    ///
<returns>Tab info; null if not found.</returns>
    ///
<exception cref="Exception">Something failed.</exception>
    ///
<remarks>
    ///
Temporarily activates each tab (to get its URL) until finds the specified tab. There is no way to avoid it; even Selenium cannot get URL of inactive tabs.
    /// </remarks>
    public static ATBUResult ActivateTabByURL(wnd wChrome, string url, bool activateWindow = true) => _ATBU_Window(wChrome, url, activateWindow);
    
    static ATBUResult _ATBU_Window(wnd w, wildex wx, bool activateWindow) {
        var tablist = w.Elm["PAGETABLIST"].Find(-1);
        var tabs = tablist?.Elm["PAGETAB"].FindAll();
        if (tabs?.Any() == true) {
            var currentTab = tabs.FirstOrDefault(o => o.IsSelected);
            foreach (var tab in tabs) {
                tab.Invoke();
                var doc = w.Elm["web:DOCUMENT", prop: "value=?*"].Find(5);
                var u = doc.Value;
                if (wx.Match(u)) {
                    if (activateWindow) w.Activate();
                    return new(w, tab, doc, u);
                }
            }

            currentTab?.Invoke();
        }

        return null;
    }

    
    public record class ATBUResult(wnd window, elm tabButton, elm document, string url);
}


Messages In This Thread
Help opening certain Chrome tab - by eyescovered - 03-08-2024, 12:03 PM
RE: Help opening certain Chrome tab - by Gintaras - 03-08-2024, 01:32 PM
RE: Help opening certain Chrome tab - by Gintaras - 03-08-2024, 02:12 PM
RE: Help opening certain Chrome tab - by Davider - 03-12-2024, 11:56 AM
RE: Help opening certain Chrome tab - by Gintaras - 03-12-2024, 01:10 PM
RE: Help opening certain Chrome tab - by Davider - 03-12-2024, 11:50 PM
RE: Help opening certain Chrome tab - by Gintaras - 03-13-2024, 05:49 AM
RE: Help opening certain Chrome tab - by Davider - 03-13-2024, 06:24 AM
RE: Help opening certain Chrome tab - by Gintaras - 03-13-2024, 08:01 AM
RE: Help opening certain Chrome tab - by Davider - 03-13-2024, 09:13 AM
RE: Help opening certain Chrome tab - by Gintaras - 03-13-2024, 09:37 AM
RE: Help opening certain Chrome tab - by Davider - 03-14-2024, 05:55 AM
RE: Help opening certain Chrome tab - by Gintaras - 03-14-2024, 06:19 AM
RE: Help opening certain Chrome tab - by Davider - 03-23-2024, 10:51 PM
RE: Help opening certain Chrome tab - by birdywen - 03-24-2024, 01:07 AM
RE: Help opening certain Chrome tab - by Davider - 03-24-2024, 01:33 AM
RE: Help opening certain Chrome tab - by Gintaras - 03-24-2024, 07:25 AM
RE: Help opening certain Chrome tab - by Davider - 03-24-2024, 08:47 AM
RE: Help opening certain Chrome tab - by Davider - 03-25-2024, 11:54 PM
RE: Help opening certain Chrome tab - by Gintaras - 03-26-2024, 04:58 AM
RE: Help opening certain Chrome tab - by Davider - 03-31-2024, 11:52 AM
RE: Help opening certain Chrome tab - by Davider - 03-31-2024, 11:38 PM
RE: Help opening certain Chrome tab - by Gintaras - 04-01-2024, 04:35 AM
RE: Help opening certain Chrome tab - by Davider - 04-08-2024, 01:38 AM
RE: Help opening certain Chrome tab - by Gintaras - 04-09-2024, 05:21 AM
RE: Help opening certain Chrome tab - by Davider - 04-09-2024, 05:39 AM
RE: Help opening certain Chrome tab - by Gintaras - 04-09-2024, 05:45 AM
RE: Help opening certain Chrome tab - by Davider - 04-09-2024, 05:54 AM
RE: Help opening certain Chrome tab - by Davider - 04-13-2024, 07:05 AM
RE: Help opening certain Chrome tab - by Davider - 04-13-2024, 10:59 AM
RE: Help opening certain Chrome tab - by Davider - 04-14-2024, 11:47 PM
RE: Help opening certain Chrome tab - by Gintaras - 04-15-2024, 04:44 AM
RE: Help opening certain Chrome tab - by Davider - 04-15-2024, 05:32 AM
RE: Help opening certain Chrome tab - by Davider - 04-24-2024, 12:21 PM
RE: Help opening certain Chrome tab - by Gintaras - 04-24-2024, 01:02 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)