Я изучаю автоматизацию веб-приложения и пытаюсь определить элементы в тени. Я немного застрял, так как все мои исследования указывают на то, что я поступаю правильно, однако мой код всегда выдает «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.
Я пытаюсь использовать элемент в обоих утверждениях и выполнять такие действия, как выделение элемента.
Заранее благодарим вас за любые советы, которые вы можете получить.