TypeInitializationException 在 c# 中对元素执行操作时,Selenium

本文关键字:操作 Selenium 执行 元素 TypeInitializationException | 更新日期: 2023-09-27 17:56:50

我只想单击一个按钮,或编辑输入的文本,但我不能用这种方法做到这一点。我将元素存储在公共静态类中,并从另一个公共静态类调用它们。如果我不使用这个类,我就不会得到异常。

public static class SiteA
{
    static uidriver = Program.uidriver;
    public static class Functionality
    {
        public static void SomeTest()
        {
            //...
            Inputs.Buttons.Authorize.Click(); //Here I get the exception
            //Working code: uidriver.FindElement(By.Id("some_element")).Click();
            //...
        }
    }
    public static class Inputs
    {
        public static class Buttons
        {
            public static IWebElement Authorize = uidriver.FindElement(By.Id("some_element"));
        }
    }   
}
class Program
{
    public static IWebDriver uidriver;
    static void Main(string[] args)
    {
        uidriver = new FirefoxDriver();
        SiteA.Functionality.SomeTest();
    }
}

MyExeName 中发生了类型为"System.TypeInitializationException"的未处理异常.exe

其他信息:"输入"的类型初始值设定项引发异常。

内部异常包含以下消息:

无法找到元素: {"方法":"id","选择器":"some_element"}

另一个细节(我认为可能是必要的):

类型名称:输入

TypeInitializationException 在 c# 中对元素执行操作时,Selenium

问题出在static参数上。