"Fossies" - the Fresh Open Source Software Archive

Member "selenium-selenium-4.8.1/dotnet/test/common/ShadowRootHandlingTest.cs" (17 Feb 2023, 2817 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C# source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 using System.Collections.Generic;
    2 using NUnit.Framework;
    3 using System.Collections.ObjectModel;
    4 
    5 namespace OpenQA.Selenium
    6 {
    7     [IgnoreBrowser(Browser.IE, "IE does not support Shadow DOM natively")]
    8     [IgnoreBrowser(Browser.Safari, "Safari driver does not support Shadow DOM end points")]
    9     [TestFixture]
   10     public class ShadowRootHandlingTest : DriverTestFixture
   11     {
   12         [Test]
   13         public void ShouldReturnShadowRoot()
   14         {
   15             driver.Url = shadowRootPage;
   16             IWebElement element = driver.FindElement(By.CssSelector("custom-checkbox-element"));
   17             ISearchContext shadowRoot = element.GetShadowRoot();
   18             Assert.That(shadowRoot, Is.Not.Null, "Did not find shadow root");
   19         }
   20 
   21         [Test]
   22         [IgnoreBrowser(Browser.Firefox, "Firefox does not support finding Shadow DOM elements")]
   23         public void ShouldFindElementUnderShadowRoot()
   24         {
   25             driver.Url = shadowRootPage;
   26             IWebElement element = driver.FindElement(By.CssSelector("custom-checkbox-element"));
   27             ISearchContext shadowRoot = element.GetShadowRoot();
   28             IWebElement elementInShadow = shadowRoot.FindElement(By.CssSelector("input"));
   29             Assert.That(elementInShadow.GetAttribute("type"), Is.EqualTo("checkbox"), "Did not find element in shadow root");
   30         }
   31 
   32         [Test]
   33         public void ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot()
   34         {
   35             driver.Url = shadowRootPage;
   36             IWebElement element = driver.FindElement(By.CssSelector("#noShadowRoot"));
   37             Assert.That(() => element.GetShadowRoot(), Throws.InstanceOf(typeof(NoSuchShadowRootException)));
   38         }
   39 
   40         [Test]
   41         [IgnoreBrowser(Browser.Firefox, "Firefox does not support finding Shadow DOM elements")]
   42         public void ShouldGetShadowRootReferenceFromJavaScript()
   43         {
   44             driver.Url = shadowRootPage;
   45             IWebElement element = driver.FindElement(By.CssSelector("custom-checkbox-element"));
   46             object shadowRoot = ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].shadowRoot;", element);
   47             Assert.That(shadowRoot, Is.InstanceOf<ISearchContext>(), "Did not find shadow root");
   48         }
   49 
   50         [Test]
   51         public void ShouldAllowShadowRootReferenceAsArgumentToJavaScript()
   52         {
   53             driver.Url = shadowRootPage;
   54             IWebElement element = driver.FindElement(By.CssSelector("custom-checkbox-element"));
   55             ISearchContext shadowRoot = element.GetShadowRoot();
   56             object elementInShadow = ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].querySelector('input');", shadowRoot);
   57             Assert.That(elementInShadow, Is.InstanceOf<IWebElement>(), "Did not find shadow root");
   58         }
   59     }
   60 }