C# webdriver页面对象内的非静态字段需要对象引用
我想初始化某个属性一次,然后使用它来使用C#with webdriver page对象查找页面中的元素(在java中,以下代码正在运行),但是使用属性containerID会显示以下错误: 非静态字段需要对象引用 这是我的代码: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
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方法中。如果我创建一些新类来保存属性并使用它,这是一个合适的解决方案吗?