繁体   English   中英

Selenium(c#控制台):我想退出所有的webdriver,并定期重新启动它们

[英]Selenium(c# console) : I want to quit all my webdrivers and restart them periodically

我的英语不好,所以我不知道我的写作是否正确。

我学习了一个星期的编程。

我想退出所有的网络驱动程序,然后每两个小时重新启动一次。 但是我失败了。


版本1

static void Main(string[] args)
{
    ChromeOptions options = new ChromeOptions();
    options.AddArgument("--start-maximized");
    IWebDriver driver = new ChromeDriver(options);
    System.Threading.Timer timer = new System.Threading.Timer(OnTimer, driver, 7200000, Timeout.Infinite);

    do {
    //Automation Program
    }while(true)

    driver.Quit();
}
static void OnTimer(Object driver)
{
    driver.Quit();
    /*
    Restart Process/Application code.
    Not made yet. Because driver.Quit() didn't work.
    */
}

版本2

static void Main(string[] args)
{
    System.Threading.Timer timer = new System.Threading.Timer(OnTimer, "test", 1000, 7200000);
}
static void OnTimer(Object state)
{
    ChromeOptions options = new ChromeOptions();
    options.AddArgument("--start-maximized");
    IWebDriver driver = new ChromeDriver(options);

    do {
    //Automation Program
    }while(true)

    driver.Quit();
}

我失败的原因是我试图用OnTimer控制WebDriver。

是否有退出Webdriver并重新启动的好方法?

首先:您必须全局定义IWebDriver驱动程序而不是私有的。

secound:您忘记了driver.close()命令。

第三:您必须在线程中完成进程,而在另一个线程中不要放置计时器;

IWebDriver driver;
static void Main(string[] args)
{
    ChromeOptions options = new ChromeOptions();
    options.AddArgument("--start-maximized");
    driver = new ChromeDriver(options);

    System.Timers.Timer myTimer = new System.Timers.Timer();
    myTimer .Elapsed+=new ElapsedEventHandler(OnTimedEvent);
    myTimer .Interval=7200000;
    myTimer .Enabled=true;

    Thread th=new Thread(new ThreadStart(dosomething));
            th.Start();
}
 private static void dosomething()
        {
            // do something (works)
        }
private static void OnTimedEvent(object source, ElapsedEventArgs e)
 {
     driver.Close();
    driver.Quit();
    driver.Dispose();
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM