{"id":37054263,"url":"https://github.com/abhinavminhas/shadowroot-digger-dotnet","last_synced_at":"2026-01-14T06:07:31.748Z","repository":{"id":38176001,"uuid":"425381339","full_name":"abhinavminhas/shadowroot-digger-dotnet","owner":"abhinavminhas","description":"⚡ DOM shadow root finder in Selenium (.NET) ⚡","archived":false,"fork":false,"pushed_at":"2023-06-24T06:44:50.000Z","size":228,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-03T10:40:07.042Z","etag":null,"topics":["cssselector","jquery","netcore","netframework","netstandard","queryselector","selenium","seleniumwebdriver","shadow-dom","shadow-root"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abhinavminhas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-07T00:45:11.000Z","updated_at":"2024-05-12T22:29:24.000Z","dependencies_parsed_at":"2022-07-09T17:30:38.599Z","dependency_job_id":null,"html_url":"https://github.com/abhinavminhas/shadowroot-digger-dotnet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abhinavminhas/shadowroot-digger-dotnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhinavminhas%2Fshadowroot-digger-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhinavminhas%2Fshadowroot-digger-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhinavminhas%2Fshadowroot-digger-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhinavminhas%2Fshadowroot-digger-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abhinavminhas","download_url":"https://codeload.github.com/abhinavminhas/shadowroot-digger-dotnet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhinavminhas%2Fshadowroot-digger-dotnet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28412188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cssselector","jquery","netcore","netframework","netstandard","queryselector","selenium","seleniumwebdriver","shadow-dom","shadow-root"],"created_at":"2026-01-14T06:07:31.102Z","updated_at":"2026-01-14T06:07:31.740Z","avatar_url":"https://github.com/abhinavminhas.png","language":"C#","readme":"# shadowroot-digger\n*DOM shadow root elements finder using Selenium solution in .NET*. \u003c/br\u003e\u003c/br\u003e\n![shadowroot-digger (Build)](https://github.com/abhinavminhas/shadowroot-digger-dotnet/actions/workflows/build.yml/badge.svg)\n[![codecov](https://codecov.io/gh/abhinavminhas/shadowroot-digger-dotnet/branch/main/graph/badge.svg?token=8LXZL9ZLZR)](https://codecov.io/gh/abhinavminhas/shadowroot-digger-dotnet)\n![maintainer](https://img.shields.io/badge/Creator/Maintainer-abhinavminhas-e65c00)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![NuGet](https://img.shields.io/nuget/v/ShadowRoot.Digger?color=%23004880\u0026label=Nuget)](https://www.nuget.org/packages/ShadowRoot.Digger/)\n\nOne of the important aspect of web components is encapsulation and [Shadow DOM API](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) is a key part of this, allowing hidden DOM trees to be attached to elements in the regular DOM tree. This shadow DOM tree starts with a shadow root, underneath which any elements can be attached, in the same way as the normal DOM. The solution combines the power of [Document Query Selector API](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector)  with [Selenium](https://www.selenium.dev/) to grab such shadow root DOM trees and interact with any elements encapsulated within it.\n\nSelenium 4.1.x+ - Current supported package/solution version.  \nSelenium 4.0.x - Check support [here](https://github.com/abhinavminhas/shadowroot-digger-dotnet/tree/Selenium-4.0.x-2.0.x).  \nSelenium 3 - Check support [here](https://github.com/abhinavminhas/shadowroot-digger-dotnet/tree/Selenium-3-v1.0.x).\n\n## Download\nThe package is available and can be downloaded using [nuget.org](https://www.nuget.org/) package manager.  \n- Package Name - [ShadowRoot.Digger](https://www.nuget.org/packages/ShadowRoot.Digger/).\n\n## Features\n1. Returns shadow root or nested shadow root from DOM.\n2. Checks if shadow root or nested shadow root is present or not in the DOM.  \n   **NOTE:** *Supports Selenium 3, 4.0.x \u0026 4.1.x+ versions (Check Selenium Dependency Before Use)*  \n   \u0026emsp;\u0026emsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;For Selenium 4.0.x - Use versions [2.x.x](https://www.nuget.org/packages/ShadowRoot.Digger/2.0.0).  \n   \u0026emsp;\u0026emsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;For Selenium 3 - Use versions [1.x.x](https://www.nuget.org/packages/ShadowRoot.Digger/1.0.5).\n\n## .NET Supported Versions\nThe solution is built on .NetStandard 2.0  \n\u003cimg src=\"https://user-images.githubusercontent.com/17473202/141665862-0e5e1c0e-e84f-42bf-befb-267e722e9d60.png\" /\u003e  \n\n## Usage Guidelines\n1. Install the nuget package [ShadowRoot.Digger](https://www.nuget.org/packages/ShadowRoot.Digger/).  \n2. Use below extension methods to get shadow root or nested shadow root.  \n   Required parameters - webdriver instance \u0026 shadow root host selector identifier/s.\n    ```\n    ShadowRootAssist.GetShadowRootElement()\n    ShadowRootAssist.GetNestedShadowRootElement()\n    ```\n    The returned shadow root element from above extension methods can be used to find element/s encapsulated within it.  \n    **NOTE:** *Use **[jQuery Selectors](https://www.w3schools.com/jquery/jquery_ref_selectors.asp)** or **[CSS Selectors](https://www.w3schools.com/cssref/css_selectors.asp)** for shadow root host identifications.*\n3. Use below extension methods for checking if shadow root or nested shadow root exists or not.  \n   Required parameters - webdriver instance \u0026 shadow root host selector identifier/s.\n    ```\n    ShadowRootAssist.IsShadowRootElementPresent()\n    ShadowRootAssist.IsNestedShadowRootElementPresent()\n    ```\n    **NOTE:** *Use **[jQuery Selectors](https://www.w3schools.com/jquery/jquery_ref_selectors.asp)** or **[CSS Selectors](https://www.w3schools.com/cssref/css_selectors.asp)** for shadow root host identifications.*\n\n Check the solution tests for more information.  \n**NOTE:** *Google Chrome \u0026 shadow DOM in Chrome settings along with [ShadowDOM.html](/ShadowRootDigger.CORE.Tests/TestFiles/ShadowDOM.html) have been used for testing the solution.*\n\n## Verified Versions\n\n   | Google Chrome | Chrome Driver | Microsoft Edge | Edge Driver |\n   | ----------- | ----------- | ----------- | ----------- |\n   | 114.0.5735.133 | 114.0.5735.90 | 114.0.1823.43 | 114.0.1823.43 |\n   | 113.0.5672.63 | 113.0.5672.63 | 113.0.1774.35 | 113.0.1774.35 |\n   | 112.0.5615.165 | 112.0.5615.49 | 112.0.1722.54 | 112.0.1722.54 |\n   | 111.0.5563.110 | 111.0.5563.64 | 111.0.1661.54 | 111.0.1661.54 |\n   | 110.0.5481.177 | 110.0.5481.77 | 110.0.1587.63 | 110.0.1587.63 |\n   | 109.0.5414.119 | 109.0.5414.74 | 109.0.1518.70 | 109.0.1518.70 |\n   | 108.0.5359.124 | 108.0.5359.71 | 108.0.1462.54 | 108.0.1462.54 |\n   | 107.0.5304.87 | 107.0.5304.62 | 107.0.1418.35 | 107.0.1418.35 |\n   | 106.0.5249.119 | 106.0.5249.61 | 106.0.1370.52 | 106.0.1370.52 |\n   | 105.0.5195.52 | 105.0.5195.19 | 105.0.1343.53 | 105.0.1343.53 |\n   | 104.0.5112.79 | 104.0.5112.79 | 104.0.1293.54 | 104.0.1293.47 |\n   | 103.0.5060.114 | 103.0.5060.53 | 103.0.1264.44 | 103.0.1264.45 |\n   | 102.0.5005.61 | 102.0.5005.61 | 102.0.1245.33 | 102.0.1245.33 |\n   | 101.0.4951.41 | 101.0.4951.41 | 101.0.1210.53 | 101.0.1210.53 |\n   | 100.0.4896.75 | 100.0.4896.60 | 100.0.1185.29 | 100.0.1185.29 |\n   | 99.0.4844.74 | 99.0.4844.51 | 99.0.1150.46 | 99.0.1150.46 |\n   | 98.0.4758.102 | 98.0.4758.102 | 98.0.1108.56 | 98.0.1108.56 |\n   | 97.0.4692.71 | 97.0.4692.71 | 97.0.1072.69 | 97.0.1072.69 |\n   | 96.0.4664.110 | 96.0.4664.45 | 96.0.1054.62 | 96.0.1054.62 |\n   | 95.0.4638.69 | 95.0.4638.54 | 95.0.1020.53 | 95.0.1020.53 |\n   | 94.0.4606.81 | 94.0.4606.61 | 94.0.992.23 | 94.0.992.23 |\n   | 93.0.4577.82 | 93.0.4577.63 | 93.0.961.27 | 93.0.961.27 |\n   | 92.0.4515.131 | 92.0.4515.107 | 92.0.902.45 | 92.0.902.45 |","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhinavminhas%2Fshadowroot-digger-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhinavminhas%2Fshadowroot-digger-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhinavminhas%2Fshadowroot-digger-dotnet/lists"}