我正在研究使Web应用程序自动化的过程,并且正在努力寻找影子穹顶内的元素。我的所有研究都指向做正确的事情,我对此感到有些困惑,但是我的代码总是抛出“ 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。
我正在尝试在两个断言中都使用该元素,并执行诸如滚动到元素之类的操作。
在此先感谢您的任何建议。