簡體   English   中英

我如何只能運行瀏覽器一次

[英]How can I run my browser only one time

我只想啟動瀏覽器一次,然后從那里獲取非靜態信息。 但是我的瀏覽器啟動了很多次。 當我的bool = false時,如何只啟動一次並關閉它?

class Program
    {
        public static bool GameIsRun = true;
        static void Main(string[] args)
        {
            CheckGame();
        }

        public static ChromeDriver GetDriver()
        {
            return new ChromeDriver();
        }

        public static void CheckGame()
        {
            while (GameIsRun)
            {
                GetInformation(GetDriver());
            }
        }

        static void GetInformation(ChromeDriver driver)
        {
            driver.Navigate().GoToUrl("myURL");
            do
            {
               //loop for doing something on this page, I don't want to start my browser many times.  
            }
            while ();
        }
    }

願這對您有用。

class Program
    {
        public static bool GameIsRun = true;
        public static IWebDriver driver = null;
        static void Main(string[] args)
        {
            CheckGame();
        }

        public static ChromeDriver GetDriver()
        {
            if(driver == null){
                 driver = new ChromeDriver();
            }
            return driver;
        }

        public static void CheckGame()
        {
            while (GameIsRun)
            {
                GetInformation(GetDriver());
            }
        }

        static void GetInformation(ChromeDriver driver)
        {
            driver.Navigate().GoToUrl("myURL");
            do
            {
               //loop for doing something on this page, I don't want to start my browser many times.  
            }
            while ();
        }
    }

其背后的原因是while (GameIsRun)代碼。 GameIsRun始終為真,這就是它進入無限循環的原因。

如何解決此問題 :像這樣啟動瀏覽器后,必須將GameIsRun的值設置為false:

public static void CheckGame()
            {
                while (GameIsRun)
                {
                    GetInformation(GetDriver());
                    GameIsRun = false;
                }
            }

使用此代碼,一旦啟動瀏覽器,它將使GameIsRun為false。

希望它能幫助您解決問題。

為此,您可以使用單例概念。

public sealed class Singleton
{
  private static Singleton instance=null;

  private Singleton()
  {
  }

  public static Singleton Instance
  {
    get
    {
        if (instance==null)
        {
            instance = new Singleton();
        }
        return instance;
    }
   }
 }

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM