Невозможно открыть веб-драйвер селена, когда путь к файлу объявлен как переменная - PullRequest
0 голосов
/ 10 февраля 2019

Я пытался установить путь к файлу в переменной, а затем открыть селен веб-драйвер.Файлы расположены пользователем, поэтому мне нужно это значение как переменную, а не путь к файлу необработанной вставки.

Когда я использую это:

FirefoxDriverService service = 
FirefoxDriverService.CreateDefaultService(@"C:\...\Geckodriver);

service.FirefoxBinaryPath = @"C:\Program Files\Mozilla Firefox\firefox.exe";

Все нормально, но когда я заменяю пути напеременные больше не работают.

    private void Form2_Load(object sender, EventArgs e)
    {
        using (IsolatedStorageFile iso = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null))
        {
            try
            {
                using (IsolatedStorageFileStream isos = new IsolatedStorageFileStream("firefoxpath.txt", System.IO.FileMode.Open, iso))
                {
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(isos))
                    {
                        fpath = sr.ReadLine();
                    }
                }
            }
            catch { }
        }


        using (IsolatedStorageFile iso = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null))
        {
            try
            {
                using (IsolatedStorageFileStream isos = new IsolatedStorageFileStream("gecopath.txt", System.IO.FileMode.Open, iso))
                {
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(isos))
                    {
                        gpath = sr.ReadLine();

                    }
                }
            }
            catch { }
        }
    }

    string fpath;
    string gpath;

    private void button1_Click(object sender, EventArgs e)
    {
        string elo;
        string byebye;
        elo = "@\"xd\"".Replace("xd", gpath);
        byebye = "@\"xd\"".Replace("xd", fpath);
        FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(elo);
        service.FirefoxBinaryPath = byebye;
        IWebDriver driver = new FirefoxDriver(service);
        IJavaScriptExecutor js = driver as IJavaScriptExecutor; 



        }
}

}

1 Ответ

0 голосов
/ 11 февраля 2019

Когда вы используете Selenium с C #, и если ваш проект содержит зависимость менеджера пакетов NuGet, нет необходимости определять какой-либо путь для Chrome / Firefox / Edge в скрипте ИЛИ в системной среде.

Драйвер утилиты вызовет внутренне.

Для Firefox: Selenium.Firefox.WebDriver в диспетчере пакетов NuGet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...