Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.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# 如何使用其他方法中的同一个ChromeDriver_C#_Selenium - Fatal编程技术网

C# 如何使用其他方法中的同一个ChromeDriver

C# 如何使用其他方法中的同一个ChromeDriver,c#,selenium,C#,Selenium,所以我创建了两个方法,我想使用相同的驱动程序。我希望第一种方法使用ChromeDriver做一些事情,第二种方法使用相同的ChromeDriver“继续”这个过程 static void FirstDriver() { IWebDriver Driver1 = new ChromeDriver(); Driver1.Navigate().GoToUrl("login page"); //login to the page } static void SecondDriver

所以我创建了两个方法,我想使用相同的驱动程序。我希望第一种方法使用ChromeDriver做一些事情,第二种方法使用相同的ChromeDriver“继续”这个过程

static void FirstDriver()
{
IWebDriver Driver1 = new ChromeDriver();
Driver1.Navigate().GoToUrl("login page");
//login to the page
}

static void SecondDriver()
{
IWebDriver Driver2 = new ChromeDriver();
Driver2.Navigate().GoToUrl("login page");
//continue while still loged-in
}

我知道另一种解决方案是从Driver1获取cookie并将其用于Driver2,但我不知道如何在selenium中做到这一点…

您需要使用该方法创建一个Chrome驱动程序对象,以便它可以在多个位置使用。
像这样的东西应该可以帮助你开始

public static IWebDriver Driver { get; set; }
    
static void Main(string[] args)
{
    Driver = new ChromeDriver();
    
    // Both should use the same driver object.
    FirstDriver();
    SecondDriver();
}

static void FirstDriver()
{
    Driver.Navigate().GoToUrl("login page");
    //login to the page
}

static void SecondDriver()
{
    Driver.Navigate().GoToUrl("login page");
    //continue while still loged-in
}

在类下,将驱动程序定义为全局变量并使用它

**static WebDriver driver;**
 driver = new ChromeDriver();
声明变量的位置决定了变量的作用域。因此,当您在一个方法中本地声明它时,它就是可用的。