Попытка найти элементы shadow-dom возвращает NULL - PullRequest
0 голосов
/ 13 апреля 2019

Я изучаю автоматизацию веб-приложения и пытаюсь определить элементы в тени. Я немного застрял, так как все мои исследования указывают на то, что я поступаю правильно, однако мой код всегда выдает «System.NullReferenceException»

Я создал расширение Selenium:

using OpenQA.Selenium;
using OpenQA.Selenium.Interactions;
using System;

namespace Name.Extensions
 {
    public static class SeleniumExtension
     {
        public static IWebElement ExpandRootElement(this IWebElement                     element, IWebDriver driver)
        {
            return (IWebElement)((IJavaScriptExecutor)driver)
                .ExecuteScript("return arguments[0].shadowRoot", element);
        }
    }
}

Чтобы найти желаемый элемент, я запускаю:

  IWebElement el =   Driver.Instance.FindElement(By.CssSelector(host)).ExpandRootElement(Driver.Instance)
                      .FindElement(By.CssSelector(element));

При отладке с использованием точек останова хост возвращается, но элемент имеет значение NULL.

Я пытаюсь использовать элемент в обоих утверждениях и выполнять такие действия, как выделение элемента.

Заранее благодарим вас за любые советы, которые вы можете получить.

...