"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 }