Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Почему при открытии браузера Google Chrome открывается браузер без расширений (selenium)?

webdriver
Теги: #<Tag:0x00007f7b6221b5f8>

(It Ot) #1

ИМЕЕТСЯ
Google Chrome Portable (портативный), который расположен в папке
c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe
На нём установлены расширения: Site Geo IP Locator;
См. скриншот http://prntscr.com/c8vkn5

При запуске ПРОЕКТ 1 на C# (с использованием selenium, WebDriver.dll, chromedriver.exe) открывается браузер Google Chrome Portable, в котором установлено только расширение “Chrome Automation Extension”, которое я не устанавливал.
Сценарий проекта:
1. открыть браузер Google Chrome Portable, который находится по пути c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe;
2. открыть поисковик (google.com);
3. ввести слово для поиска;
4. осуществить поиск;

ВОПРОС

  1. Почему когда запускаем ПРОЕКТ 1 на C#, который по сценарию открывает браузер Google Chrome Portable, в браузере установлено только расширение “Chrome Automation Extension”, которое я не устанавливал, а установленного расширения нет?
    chrome://extensions/
    См. скриншот http://prntscr.com/c8r3lm

ПРИЛОЖЕНИЕ.

  1. GoogleChromePortable.rar - https://yadi.sk/d/P5YwafKTuPbCq
  2. ПРОЕКТ_exe.rar - https://yadi.sk/d/xKhCLA4LuPevA
  3. ПРОЕКТ_ПОЛНЫЙ.rar - https://yadi.sk/d/RUOpjj64uPexY
  4. Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
////
using System.Diagnostics;
//
//

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
IWebDriver Browser;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        OpenQA.Selenium.Chrome.ChromeOptions co = new OpenQA.Selenium.Chrome.ChromeOptions();
        //****//

        co.BinaryLocation = @"c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe";
                    
        //****//
        Browser = new OpenQA.Selenium.Chrome.ChromeDriver(co);
        Browser.Manage().Window.Maximize();
        Browser.Navigate().GoToUrl("http://google.com");

        IWebElement SearchInput = Browser.FindElement(By.Id("lst-ib"));
        SearchInput.SendKeys("проект домов" + OpenQA.Selenium.Keys.Enter);

    }

    private void button2_Click(object sender, EventArgs e)
    {

    }
}

}



**ДЛЯ ЗАПУСКА ПРОЕКТА ТРЕБУЕТСЯ ВЫПОЛНИТЬ СЛЕДУЮЩЕЕ:**
1. ПРИЛОЖЕНИЕ 1 (GoogleChromePortable.rar) разархивировать и разместить на диске "C"
чтобы файлы находились по следующим путям соответственно:
1. Файл GoogleChromePortable_1.exe - находился по пути 
c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe
т.е. папку "soft" просто разместить на диске c:\

(Vasiliy Rakshin) #2

Потому что по умолчанию создаётся пустой профиль, в котором ничего нет.
Ищите решение вашей проблемы в сторону использования уже настроенного профиля или ещё проще - модификации профиля при старте браузера (если вам надо всего лишь добавить 1 расширение) - https://sites.google.com/a/chromium.org/chromedriver/capabilities


(It Ot) #3

Мне необходимо 3-4 расширения использовать.

Этот процесс как-то по другому можно пустить? Например, чтобы профиль не создавался, а открывал готовый уже настроенный профиль?

Или может лучше другими средствами можно реализовать этот сценарий:

  1. открыть браузер Google Chrome Portable, который находится по пути c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe;
  2. открыть поисковик (google.com);
  3. ввести слово для поиска;
  4. осуществить поиск;
    ?

(It Ot) #4

Вроде сделал всё по инструкции, но что-то не работает.

  1. Скачал файл .crx через этот сервис: http://chrome-extension-downloader.com/
  2. Скорректировал код согласно:

Вроде сделал по инструкции, а всё равно не запускается
Почему не устанавливается расширение?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
//****//
using System.Diagnostics;
using OpenQA.Selenium.Chrome;
using System.IO;
//****//

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        IWebDriver Browser;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenQA.Selenium.Chrome.ChromeOptions co = new OpenQA.Selenium.Chrome.ChromeOptions();
            co.BinaryLocation = @"c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe";
            // co.AddExtensions(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx");
            co.AddArguments(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile");

            // co.AddExtension(Path.GetFullPath("c:\soft\UD\GoogleChromePortable\1_1\profil\SiteGeoIPLocator\SiteGeoIPLocator.crx"));

            // chrome://extensions/
            //****//
            Browser = new OpenQA.Selenium.Chrome.ChromeDriver(co);
            Browser.Manage().Window.Maximize();
            Browser.Navigate().GoToUrl("http://google.com");

            IWebElement SearchInput = Browser.FindElement(By.Id("lst-ib"));
            SearchInput.SendKeys("проект домов" + OpenQA.Selenium.Keys.Enter);

        }

        private void button2_Click(object sender, EventArgs e)
        {

        }
    }
}

(Vasiliy Rakshin) #5

У вас по коду установка расширения закомменчена.

  • Попробуйте закомментить указание папки с профилем.