簡體   English   中英

如何在其他方法中引用IWebDriver變量?

[英]How do i reference the IWebDriver variable in another method?

我正在嘗試在C#中使用webdriver來自動化一些任務。 我創建了一個名為logInAutomation的方法,如下所示:

IWebDriver driver = new ChromeDriver();

然后單擊按鈕時,我在事件處理程序中引用該方法,如下所示:

private void testButton_Click(object sender, EventArgs e) 
{
logInAutomation();
}

問題是,我需要再次引用IWebDriver,但是我知道如何編寫代碼的唯一方法是重新鍵入:

IWebDriver driver = new ChromeDriver();

這會導致另一個鍍鉻窗口打開。 如何在事件處理程序方法中引用IWebDriver而不打開新窗口? 抱歉,如果我的術語不對,我是編碼新手,所以如果需要澄清,請告訴我。

這是完整的代碼:

namespace Automation_Suite
{
    public partial class redSuite : Form
    {

        public redSuite()
        {
            InitializeComponent();
        }

        static public void logInAutomation()
        {
            //Opens Chrome Window and navigates to Autoloop Log in
            IWebDriver driver = new ChromeDriver();
            driver.Url = "DESTINATION URL";

            //Finds Username field and enters username
            IWebElement element = driver.FindElement(By.Name("USERNAME LOG IN"));
            element.SendKeys("USERNAME");

            //Finds Password field and enters password
            element = driver.FindElement(By.Name("PASSWORD AUTOMATION"));
            element.SendKeys("PASSWORD");

            //Clicks Submit
            driver.FindElement(By.Id("SUBMIT BUTTON")).Click();
        }

        public void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void hostedGalleryBtn_Click(object sender, EventArgs e)
        {
            logInAutomation();

            IWebElement element = element = driver.FindElement(By.Name("COMPANY ID"));
            element.SendKeys("ID NUMBER");
        }
    } 
}

您需要將“ driver”定義為類字段成員 ,而不是在方法內部,而是在類范圍內。

namespace Automation_Suite
{
    public partial class redSuite : Form
    {
        private IWebDriver driver = new ChromeDriver(); //define driver here so you can use it in methods.

        public redSuite()
        {
            InitializeComponent();
        }

        public void logInAutomation()
        {

            driver.Url = "DESTINATION URL";

            //Finds Username field and enters username
            IWebElement element = driver.FindElement(By.Name("USERNAME LOG IN"));
            element.SendKeys("USERNAME");

            //Finds Password field and enters password
            element = driver.FindElement(By.Name("PASSWORD AUTOMATION"));
            element.SendKeys("PASSWORD");

            //Clicks Submit
            driver.FindElement(By.Id("SUBMIT BUTTON")).Click();
        }

        public void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void hostedGalleryBtn_Click(object sender, EventArgs e)
        {
            logInAutomation();

            IWebElement element = element = driver.FindElement(By.Name("COMPANY ID"));
            element.SendKeys("ID NUMBER");
        }
    } 
}

暫無
暫無

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

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