Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# webdriver页面对象内的非静态字段需要对象引用_C#_Webdriver - Fatal编程技术网

C# webdriver页面对象内的非静态字段需要对象引用

C# webdriver页面对象内的非静态字段需要对象引用,c#,webdriver,C#,Webdriver,我想初始化某个属性一次,然后使用它来使用C#with webdriver page对象查找页面中的元素(在java中,以下代码正在运行),但是使用属性containerID会显示以下错误: 非静态字段需要对象引用 这是我的代码: class DescriptionPopUp { public string containerID { get; private set; } [FindsBy(How = How.XPath, Using = String.Form

我想初始化某个属性一次,然后使用它来使用C#with webdriver page对象查找页面中的元素(在java中,以下代码正在运行),但是使用属性containerID会显示以下错误:

非静态字段需要对象引用

这是我的代码:

class DescriptionPopUp
{
        public string containerID { get; private set; }

        [FindsBy(How = How.XPath, Using = String.Format("//div[@id='{0}']//div[@class='close-Button']", containerID))]
        public IWebElement CloseButton { get; set; } 

        public DescriptionPopUp(string containerID)
        {
            this.containerID = containerID;
        }
}

有没有一种聪明的方法来处理这个问题?

不,不能将变量分配给这样的属性。NET中的属性是在编译时计算的,而在编译时,实例变量值无法可靠地确定。你需要想出另一个解决办法。这是语言的限制,而不是WebDriver的限制

有没有办法处理那个问题?我发现最好的方法是将变量放入get方法中。如果我创建一些新类来保存属性并使用它,这是一个合适的解决方案吗?