0

我正在尝试对多个网站使用相同的 webdriver 实例。每个网站都被一个 WinForm 按钮调用。这样做的目的是让应用程序运行得更快。

编码

public partial class Form5 : Form
    {
        public IWebDriver driverON;
        public Form5()
        {
            InitializeComponent();
            var service = ChromeDriverService.CreateDefaultService("C:\App\ChromeDriver");
            var options = new ChromeOptions();
            options.BinaryLocation = "C:\App\GoogleChromePortable\App\Chrome-bin\chrome.exe";
            IWebDriver driverON = new ChromeDriver(service, options);
        }
        public void Repartizare()
        {
            IJavaScriptExecutor js = (IJavaScriptExecutor)driverON;
            driverON.Navigate().GoToUrl("http://ipadress/abc/");
            js.ExecuteScript("document.getElementsByName('day')[0].value = ''");
            js.ExecuteScript("document.getElementsByName('month')[0].value = ''");
            js.ExecuteScript("document.getElementsByName('year')[0].value = ''");
            js.ExecuteScript("document.getElementsByName('btnPrint')[0].click()");
        }
        public void Registry()
        {
            IJavaScriptExecutor js = (IJavaScriptExecutor)driverON;
            driverON.Navigate().GoToUrl("http://ipadress/def/");
            js.ExecuteScript("document.getElementsByName('type')[0].value = 'object'");
            js.ExecuteScript("document.getElementsByName('btnPrint')[0].click()");
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            Repartizare();
        }
        private void Button2_Click(object sender, EventArgs e)
        {
            Registry();
        }
    }

driverOnRepartizareor函数中第一次出现时,Registry我收到此错误:“对象引用未设置为对象的实例。”

我必须让 driverONForm5()进入这些功能。我错过了什么?我在互联网上找到了一些教程,但它们主要讨论的是 Java 语言中的多个类假设,我不知道如何根据我的用法调整它们。谢谢你。

4

1 回答 1

0

在 Form5 方法上,您做错了。

改变这个:

IWebDriver driverON = new ChromeDriver(service, options);

对此:

driverON = new ChromeDriver(service, options);
于 2019-09-12T17:52:10.127 回答