我正在尝试使用下面的Instance Object来调用close()方法。它给出了一个错误:当前上下文中不存在“实例”这个名称“。任何人都可以建议我做错了什么。
public class Trial
{
public static void Initialize()
{
IWebDriver Instance = null;
Instance = new FirefoxDriver();
Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
Instance.Navigate().GoToUrl("www.google.com");
}
public static void Close()
{
Instance.Close();
}
}
答案 0 :(得分:3)
你应该花点时间阅读一些关于变量范围的文章。这是一篇这样的文章,但还有很多很多。
https://msdn.microsoft.com/en-us/library/ms973875.aspx
您最初在Instance
方法中声明了Initialize()
。这意味着它只能在该方法的范围中看到。如果要在别处引用它,则必须在要访问它的范围内声明它。在代码示例中执行此操作的一种方法是将Instance
的声明移到Trial
类中。完成后,Initialize()
和Close()
方法都在其范围内(class
),因此他们都可以访问变量。
public class Trial
{
static IWebDriver Instance = null;
public static void Initialize()
{
Instance = new FirefoxDriver();
Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
Instance.Navigate().GoToUrl("www.google.com");
}
public static void Close()
{
Instance.Close();
}
}
答案 1 :(得分:1)
Instance
是Initialize()
的“本地”,因此Close()
无法看到 - 您可能希望Instance
成为Trial
的成员1}}类,以便所有方法都可以看到它。