Wyłącz rozszerzenia trybu programisty w przeglądarce Chrome

166

Od ostatniego wydania chrome (34.0.1847.116) w zeszłym tygodniu, otrzymuję komunikat „Wyłącz rozszerzenia trybu programisty” podczas przeprowadzania testów automatycznych przy użyciu watir-webdriver.

Wydaje się, że jest to obraźliwe rozszerzenie, ale nie ma dla mnie sensu, że jest to potencjalnie niebezpieczne rozszerzenie, biorąc pod uwagę, że jest używane przez chromedriver.

Każdy, kto znalazł rozwiązanie tego problemu, ponieważ nie mogę przywrócić poprzedniej wersji ani znaleźć instalatora starszej wersji, do którego mogę wrócić, a to powoduje spustoszenie w moich testach.

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

substytut baranka
źródło
Użyj zewnętrznych kliknięć, aby zabić wyskakujące okienko: stackoverflow.com/a/29376532/285594
@ artdias90 już nie działa, on też nie chce już aktualizować (co jest zrozumiałe po 2 latach utrzymywania go).
BadAtPHP,
po wyświetleniu wyskakującego okienka naciśnij przycisk esc, używając typu robota. Robot robot; try { robot = new Robot(); robot.keyPress(KeyEvent.VK_ENTER); // confirm by pressing Enter in the end robot.keyRelease(KeyEvent.VK_ENTER); } catch (AWTException e) { printStackTraceToString(e); }
Abdullah Nurum
2
Uwaga boczna: przeglądarka Vivaldi jest kompatybilna z większością rozszerzeń Chrome i nie daje tego ostrzeżenia
Użytkownik

Odpowiedzi:

79

Oficjalny sposób , aby wyłączyć okienko to:

  1. Spakuj swoje rozszerzenie: przejdź do chrome://extensions, sprawdź Developer modei kliknijPack extension

  2. Zainstaluj rozszerzenie, przeciągając i upuszczając .crxplik na chrome://extensionsstronę.

Jeśli spróbujesz ponownie uruchomić Chrome w tym momencie, pojawi się wyskakujące okienko „Wyłączono nieobsługiwane rozszerzenia”.

Następnie dla Windows 7 lub Windows 8:

  1. Pobierz szablony zasad grupy Chrome tutaj
  2. Skopiuj [zip]\windows\admx\chrome.admxdoc:\windows\policydefinitions
  3. Kopiuj [zip]\windows\admx\[yourlanguage]\chrome.admldo c:\windows\policydefinitions\[yourlanguage]\chrome.adml(nie c:\windows\[yourlanguage])
  4. W przeglądarce Chrome przejdź do strony Rozszerzenia: chrome://extensions
  5. Czek Developer Mode
  6. Przewiń listę wyłączonych rozszerzeń i zanotuj identyfikatory rozszerzeń, które chcesz włączyć.
  7. Kliknij Start> Run, wpisz gpedit.msci naciśnij enter.
  8. Kliknij User Configuration> Administrative Templates> Google Chrome>Extensions
  9. Configure extension installation whitelistPolityka podwójnego kliknięcia
  10. Wybierz Enabledi kliknijShow
  11. Na liście wprowadź identyfikatory rozszerzeń zanotowane w kroku 7
  12. Kliknij OKi uruchom ponownie Chrome.

Otóż ​​to!

EDYCJA: od lipca 2018 r. To podejście już nie działa: wygląda na to, że Google przestał honorować „białą listę”.

EDYCJA 2: Od grudnia 2018 to podejście działa w Chrome Version 69.0.3497.100 (Official Build) (64-bit):

  1. Tymczasowo włącz Developer modewchrome://extensions

  2. Odinstaluj rozszerzenie, które powoduje wyskakujące okienko, używając rozszerzenia Load unpacked.

  3. Kliknij Pack extensioni znajdź i wybierz folder zawierający pliki rozszerzeń. Nie wprowadzaj pliku klucza prywatnego, jeśli go nie masz.

  4. Kliknij Pack extension. Plik .crxi .pemzostanie utworzony w pobliżu katalogu głównego rozszerzenia. Zainstaluj rozszerzenie przy użyciu .crxpliku i zabezpiecz .pemgo.

  5. Skopiuj identyfikator .crxzainstalowanego rozszerzenia do białej listy i uruchom ponownie Chrome.

Wyskakujące okienko powinno zniknąć.

Antony Hatchkins
źródło
4
@Ryan Wydaje się, że strona domowa tych szablonów zasad to chromium.org/administrators/policy-templates. Ta strona jest regularnie aktualizowana (ostatnia aktualizacja 54 minuty temu). Użyłem tej metody 24 czerwca i konfiguracja działa dziś z najnowszą wersją Chrome. Jeśli wolisz, aby oficjalna wersja „Nie można wyłączyć” - to Twój wybór;)
Antony Hatchkins
1
Rozwiązałem problem za pomocą opcji sterownika Selenium Chrome, patrz tutaj .
kriegaex
1
@Antony Hatchkins Użyłem zaktualizowanego kodu z tej odpowiedzi stackoverflow.com/questions/30287907/ ... i znowu zaczął działać. dzięki za reakcję!
konstruktor lamp,
1
Mój Windows to Home Premium, nie mam gpedit.msc: /
Lucas Bustamante
1
U mnie działa w Chrome 58.0.3029.81, Win 7 x64 :) Mam nadzieję, że to rozwiązanie przetrwa!
Jimadine
36

Podczas tworzenia sterownika chrome użyj opcji, aby go wyłączyć. Działa bez żadnych rozszerzeń.

Użyj następującego fragmentu kodu

ChromeOptions options = new ChromeOptions();
options.addArguments("chrome.switches","--disable-extensions");
System.setProperty("webdriver.chrome.driver",(System.getProperty("user.dir") + "//src//test//resources//chromedriver_new.exe"));
driver = new ChromeDriver(options);
Amanpreet Kaur
źródło
35
gdzie powinniśmy to napisać?
İbrahim Özbölük
Dodałem go do mojej listy argumentów pliku Protractor conf.js i to zadziałało.
Wielkie
2
To działało świetnie. W języku C # kod to:options.AddArgument("--disable-extensions");
kirbycope
4
Dzisiaj musiałem użyć options.AddArguments("chrome.switches", "--disable-extensions --disable-extensions-file-access-check --disable-extensions-http-throttling");zamiast tylko `--disable-extensions. Myślę, że jeden z dodatkowych przełączników można pominąć, ale nie oba.
Anders Lindén
14
czy możesz to trochę wyjaśnić śmiertelnym ludziom? co to za scenariusz albo gdzie go umieścić ...
T.Todua,
23

Od maja 2015 r. Chrome beta / dev / canary w systemie Windows (patrz wiersze 75–78) zawsze wyświetla to ostrzeżenie.

  • Właśnie załatałem chrome.dll (kanał deweloperski, 32-bitowy) za pomocą wersji demo hiew32: uruchom go, przejdź do widoku szesnastkowego (klawisz Enter), wyszukaj ExtensionDeveloperModeWarning (F7), a następnie naciśnij F6, aby znaleźć kod odsyłający, przejdź do w pobliżu linii INC EAX , po której następuje RETN, naciśnij F3, aby edytować, wpisz 90 zamiast 40, które zostaną wyrenderowane jako NOP (no-op), zapisz (F9).

  • Uproszczona metoda znaleziona przez @Gsx, która działa również w przypadku 64-bitowych programistów Chrome:

    1. uruchom demo hiew32 (w trybie administratora) i otwórz Chrome.dll
    2. przełącz na widok szesnastkowy ( Enterklucz)
    3. wyszukaj ExtensionDeveloperModeWarning ( F7)
    4. naciśnij, F3aby edytować i zastąpić pierwszą literę „E” dowolnym innym znakiem
    5. save ( F9).
  • patch.BAT scenariusz

Oczywiście będzie to trwać tylko do następnej aktualizacji, więc ktokolwiek potrzebuje jej często, może napisać auto-łatkę lub program uruchamiający, który łata dll w pamięci.

wOxxOm
źródło
Cześć, próbuję go załatać za pomocą hiew32demo, ale nie byłem w stanie tego zrobić. Kiedy otwieram chrome.dll, dostaję Hiew Demo doesn't support NE/LX/LE/NLM/ELF/PE64 files, ale mogę pominąć to ostrzeżenie. Następnie zmieniam tryb za pomocą F4, aby dekodować i przeszukiwać ExtensionDeveloperMo, ponieważ _ExtensionDeveloperModeWarning _ nie pasuje. Po znalezieniu wciskam F6, ale otrzymuję Target not found. Czy mógłbyś mi pomóc?
Gsx
1
Nie mogę znaleźć numeru „4578 7465 6e73 696f 6e44 6576” („ExtensionDev”) w chrome.dll. Czy ta metoda nadal działa?
Emerson
GSX, moja metoda działa dla 32-bitowej przeglądarki Chrome na kanale deweloperskim.
wOxxOm
2
Emerson, ta zmiana pojawiła się na Dev Channel zaledwie tydzień temu, więc nie jest w wersji stabilnej. Będziesz musiał znaleźć odpowiednie miejsce, analizując poprzednią wersję kodu źródłowego.
wOxxOm
1
@wOxxOm To też się nie udało, ale znalazłem dziwny sposób XD. Szukałem ExtensionDeveloperMo i zmieniłem to na EXtensionDeveloperMo i to wydawało się działać.
Gsx
7

Nie można wyłączyć. Cytując: „Przepraszamy, wiemy, że to irytujące, ale wy twórcy złośliwego oprogramowania ...”

Jedyne dostępne opcje to: dostosowanie testów automatycznych do tego nowego zachowania lub przesłanie skryptu powodującego problem do Chrome Web Store (można to zrobić w sposób „niepubliczny”).

Xan
źródło
66
Istnieją tysiące powodów, dla których nie mogę używać mojego rozszerzenia / aplikacji w sklepie internetowym, muszę je uruchomić lokalnie. To była bardzo ZŁA implementacja od zespołu Google Chromium, bardzo ZŁA, ktoś z wiedzą powinien debatować z Chromium i go naprawić. Okropny problem i poważnie nie doceniony. Cała odpowiedź na ten problem to po prostu zabijanie ludzi, którzy pracują nad projektem kiosków. jego koszmar. prosimy o poinformowanie / pukanie / debatowanie ze społecznością chromu, aby rozwiązać ten problem.
4
To tylko kwestia czasu, kiedy nie będziesz mógł już niczego rozwijać za pomocą Chrome :)
Vinz
1
Racja, to z powodu złośliwego oprogramowania ... nie próbujemy denerwować ludzi, którzy używają rozszerzeń, które zablokowaliśmy w naszym sklepie, takich jak Dissenter ...
Chris_F,
Muszę dodać niestandardowy klucz manifestu, a przesyłanie do sklepu internetowego nie jest opcją.
Owoce
5

(W odpowiedzi dla Antony'ego Hatchkinsa)

Oto aktualny, dosłownie oficjalny sposób ustawiania zasad Chrome: https://support.google.com/chrome/a/answer/187202?hl=pl

Szablony dla systemów Windows i Linux, a także wspólną dokumentację zasad dla wszystkich systemów operacyjnych, można znaleźć tutaj: https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip (plik ZIP z szablonami Google Chrome i dokumentacja)

Instrukcje dla Windows (z moimi dodatkami):

Otwórz pobrany szablon ADM lub ADMX:

  • Rozpakuj plik „chrome.adm” w wybranym języku z pobranego wcześniej pliku „policy_templates.zip” (np. „Policy_templates.zip \ windows \ adm \ en-US \ chrome.adm”).
  • Przejdź do Start> Uruchom: gpedit.msc.
  • Przejdź do Lokalne zasady komputera> Komputer / użytkownik > Konfiguracja > Szablony administracyjne.
  • Kliknij prawym przyciskiem myszy Szablony administracyjne i wybierz opcję Dodaj / usuń szablony.
  • Dodaj szablon „chrome.adm” w oknie dialogowym.
  • Po zakończeniu folder Klasyczne szablony administracyjne (ADM) / Google / Google Chrome pojawi się w obszarze Szablony administracyjne.
  • Niezależnie od tego, czy dodasz szablon w obszarze Konfiguracja komputera czy Konfiguracja użytkownika, ustawienia pojawią się w obu miejscach, dzięki czemu możesz skonfigurować Chrome na poziomie komputera lub użytkownika.

Gdy skończysz, przejdź do kroku 5 odpowiedzi Antony'ego Hatchkinsa . Po dodaniu identyfikatorów rozszerzeń możesz sprawdzić, czy zasada działa w Chrome, otwierając chrome://policy(wyszukaj ExtensionInstallWhitelist ).

Pantera
źródło
Dzięki Panther. Dodano szablon „chrome.adm” za pośrednictwem okna dialogowego i otrzymałem ten błąd: Poniższy wpis w sekcji [strings] jest za długi i został obcięty. To jest po stronie z cyrylicy?
Steve Staple
Użyj @, aby automatycznie powiadomić innego użytkownika o swoim poście (np. @Panther).
Antony Hatchkins
@SteveStaple Przepraszamy, ale nie wiem, co może być przyczyną takiego problemu. :( Nie jestem w tym ekspertem, po prostu postępowałem zgodnie z instrukcjami ze strony, do której umieściłem link. Na szczęście zadziałało to dla mnie.
Panther
4

Ustawienie wyłączania rozszerzeń nie działa dla mnie. Zamiast tego użyłem klasy Robot, aby kliknąć przycisk Anuluj.

import java.awt.Robot;
import java.awt.event.InputEvent;

public class kiosk {
  public static void main(String[] args) {
    // As long as you don't move the Chrome window, the Cancel button should appear here.
    int x = 410;
    int y = 187;

    try {
      Thread.sleep(7000);// can also use robot.setAutoDelay(500);
      Robot robot = new Robot();
      robot.mouseMove(x, y);
      robot.mousePress(InputEvent.BUTTON1_MASK);
      robot.mouseRelease(InputEvent.BUTTON1_MASK);
      Thread.sleep(3000);// can also use robot.setAutoDelay(500);
    } catch (AWTException e) {
      System.err.println("Error clicking Cancel.");
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}
stackexchanger
źródło
Ta odpowiedź jest niedoceniana, ponieważ można ją dostosować do automatyzacji innych irytujących, nieuniknionych zadań związanych z klikaniem przycisku GUI.
D Adams
@momomo Oczywiście można to ustawić w config lub coś w tym stylu, ale to tylko przykładowy kod.
Steve Smith
4

Istnieje alternatywne rozwiązanie, użyj Chrome-Developer-Mode-Extension-Warning-Patcher :

  1. Pobierz najnowsze wydanie stąd z Github.
  2. Zamknij Chrome.
  3. Rozpakuj archiwum zip i uruchom ChromeDevExtWarningPatcher.exe jako administrator .
  4. Wybierz instalację Chrome z właśnie otwartego GUI, a następnie kliknij przycisk Patch:

wprowadź opis obrazu tutaj

  1. Ciesz się Chrome bez wyskakującego okienka DevMode!
Nicola Pesavento
źródło
3

Cierpiałem na ten sam problem i spróbowałem następujących rozwiązań:

  1. Spakuj rozpakowane rozszerzenie
  2. Wyłącz tryb programisty
  3. Przeciągnij i upuść plik .crx z spakowanego rozszerzenia
  4. Zamknij Chrome, a następnie otwórz go ponownie.

Kilka uwag:

  • Plik .pem należy przechowywać z rozszerzeniem .crx
  • Nie umieszczaj plików .crx i .pem w folderze rozpakowanego rozszerzenia.

Kiedy ponownie otworzyłem Chrome, dostałem wyskakujące okienko z informacją o nowym spakowanym rozszerzeniu, więc ponownie uruchomiłem Chrome, aby sprawdzić, czy zrobi to ponownie, ale tak się nie stało.

Mam nadzieję, że to rozwiązanie zadziałało!

Ethan Leyden
źródło
Po użyciu Twojej metody wyświetla się „Wyskakujące okienko z nieobsługiwanymi rozszerzeniami”. Zobacz moją odpowiedź, aby dowiedzieć się, jak ją wyłączyć.
Antony Hatchkins
Otrzymałem informację „Aplikacje, rozszerzenia i skrypty użytkownika nie mogą być dodawane z tej witryny”.
johny why
2

Na podstawie odpowiedzi Antony'ego Hatchkinsa :

Oficjalny sposób , aby wyłączyć okienko wydaje się być tak:

  1. Spakuj swoje rozszerzenie ( chrome://extensions/zaznacz „Tryb programisty”, naciśnij „Spakuj rozszerzenie…”) i zainstaluj je, przeciągając i upuszczając .crxplik na chrome://extensionsstronie.

    (Ponieważ rozszerzenie nie pochodzi z Chrome Web Store, zostanie domyślnie wyłączone).

Następnie dla systemu Windows:

  1. W przeglądarce Chrome przejdź do strony Rozszerzenia ( chrome: // extensions )
  2. Zaznacz pole wyboru Tryb programisty u góry
  3. Przewiń listę wyłączonych rozszerzeń i zanotuj identyfikatory rozszerzeń, które chcesz włączyć. Na przykład LogMeIn to ID:nmgnihglilniboicepgjclfiageofdfj
  4. Kliknij Start> Runi wpiszregedit <ENTER>
  5. Pod kluczem HKLM\Software\Policies\Google\Chrome\ExtensionInstallWhitelist (utwórz go, jeśli nie istnieje), utwórz nowy ciąg dla każdego rozszerzenia, które chcesz włączyć, z sekwencyjnymi nazwami (indeksami), np. 1, 2, ...
  6. Wprowadź identyfikatory rozszerzeń jako ciągi znaków w dowolnej kolejności. Na przykład istnieje ciąg z nazwą 1i wartościąnmgnihglilniboicepgjclfiageofdfj
  7. Uruchom ponownie Chrome

Otóż ​​to!

Uwaga: podczas aktualizowania rozszerzenia umieszczonego na białej liście nie musisz wykonywać tych samych czynności, ponieważ identyfikator rozszerzenia nie ulegnie zmianie.

Burak Gök
źródło
Przeciągnij i upuść .crxplik po prostu wyskakuje save as windowi nie zainstaluje go. Wersja Chrome 80.0.3987.163.
xyz
1
Nie udało się znaleźć klucza rejestru dla Edge
Chrome
@xyz Przeciągnięcie i upuszczenie .crxpliku powoduje zainstalowanie rozszerzenia w wersji 81.0.4044.122. @JinSnow Spójrz na Microsoft Edge - Zasady - ExtensionInstallAllowlist
Burak Gök
1

1) Poczekaj, aż pojawi się wyskakujący dymek.

2) Otwórz nową kartę.

3) Zamknij nową kartę. Wyskakujące okienko zniknie z oryginalnej karty.

Małe rozszerzenie do Chrome może zautomatyzować te czynności:

manifest.json

{
  "name": "Open and close tab",
  "description": "After Chrome starts, open and close a new tab.",
  "version": "1.0",
  "manifest_version": 2,
  "permissions": ["tabs"],
  "background": {
    "scripts": ["background.js"], 
    "persistent": false
  }
}

background.js

// This runs when Chrome starts up
chrome.runtime.onStartup.addListener(function() {

  // Execute the inner function after a few seconds
  setTimeout(function() {

    // Open new tab
    chrome.tabs.create({url: "about:blank"});

    // Get tab ID of newly opened tab, then close the tab
    chrome.tabs.query({'currentWindow': true}, function(tabs) {
      var newTabId = tabs[1].id;
      chrome.tabs.remove(newTabId);
    });

  }, 5000);

});

Po zainstalowaniu tego rozszerzenia uruchom Chrome i natychmiast przełącz aplikacje, zanim pojawi się wyskakujące okienko ... kilka sekund później wyskakujące okienko zniknie i nie zobaczysz go po powrocie do Chrome.

jkdev
źródło
(Wskazówka bonusowa 1) Korzystając z Selenium, możesz natychmiast otworzyć nowe okno, poczekać na wyskakujące okienko w nowym oknie, a następnie zamknąć nowe okno, aby je zamknąć. stackoverflow.com/a/36507179/3345375
jkdev
2
(Wskazówka bonusowa 2) Możesz także spróbować tego: Dodaj flagę, --enable-automationaby uniknąć wyskakującego okienka.
jkdev
2
To nie zadziałało dla mnie. Win 10, aktualny Chrome. Po wykonaniu kroków wyskakujące okienko pozostało.
freginold
@freginold Aby dowiedzieć się, co zadziałało, musiałem poeksperymentować z różnymi sekwencjami otwierania i zamykania kart / okien. Sekwencja może być inna dla innych wersji systemu operacyjnego i przeglądarki.
jkdev
@jkdev Przełącznik wiersza poleceń --enable-automationma swój własny nieprzyjemny efekt uboczny: a divpojawia się na górze każdej strony, dopóki nie zostanie odrzucony (wtedy przestaje się pojawiać). Wyskakujące okienko trybu programisty można zamknąć, naciskając klawisz ESC, gdy się pojawi. Irytujące w obu przypadkach!
George
0

Pracuję w systemie Windows i próbowałem wielu rzeczy podanych tutaj jako odpowiedź, ale Pop up ciągle wyłączał rozszerzenie, a następnie próbowałem wykonać następujące czynności i teraz działa:

  1. Przejdź do strony chrome: // extensions i kliknij Pack extensionprzycisk i wybierz katalog główny rozszerzenia, klikając czerwony prostokątny przycisk przeglądania pokazany na poniższym obrazku.

przeglądaj katalog główny rozszerzenia

  1. po wybraniu katalogu głównego Kliknij Pack extensionprzycisk wyświetlony w czerwonym kółku na poniższym obrazku.

wprowadź opis obrazu tutaj

  1. Teraz, sprawdzając parent directorywybrane root directoryrozszerzenie, utworzyłyby 2 pliki [extension name].crxi [extension name].pem.

  2. Teraz po prostu przeciągnij i upuść [extension name].crxplik na stronę chrome: // extensions i zapyta za pomocą okna dialogowego dodawania aplikacji, kliknij Add appi odśwież stronę, na której jest teraz zainstalowana.

Uwaga: zanim zrobisz cokolwiek jak powyżej, włącz tryb programisty dla rozszerzeń . Jeśli ta opcja nie została włączona, odśwież stronę chrome: // extensions po jej włączeniu.

Haritsinh Gohil
źródło
1
rozpakowane rozszerzenie działa z ostrzeżeniem w trybie programisty. ale z crx rozszerzenie jest zawsze wyłączone. Google wymaga, aby rozszerzenie zostało opublikowane w sklepie internetowym i stamtąd zainstalowane.
gp.
Chrome nie pozwala użytkownikom instalować rozszerzeń w pakietach i mówi, że pakiet jest nieprawidłowy: CRX_REQUIRED_PROOF_MISSING.
Harshit Juneja
@HarshitJuneja może być konieczne dodanie identyfikatora rozszerzenia do białej listy i ponowne uruchomienie Chrome.
Haritsinh Gohil
0

To pytanie jest bardzo stare, ale nadal jest pierwszym wynikiem w Google, gdy szukasz sposobów na wyłączenie tego wyskakującego komunikatu jako programista rozszerzenia, który nie dodał swojego rozszerzenia do sklepu Chrome, nie ma dostępu do zasad grupy z powodu do swojego systemu operacyjnego i nie używa wersji chrome dev. Obecnie nie ma oficjalnego rozwiązania w tej sytuacji, więc opublikuję tutaj nieco „hakerskie” rozwiązanie.

Ta metoda powoduje, że natychmiast tworzymy nowe okno i zamykamy stare. Wyskakujące okienko jest powiązane z oryginalnym oknem, więc w normalnych przypadkach wyskakujące okienko nigdy się nie pojawia, ponieważ zostało zamknięte.

Najprostszym rozwiązaniem jest tutaj utworzenie nowego okna i zamknięcie wszystkich okien, które nie są oknem, które właśnie utworzyliśmy w wywołaniu zwrotnym:

chrome.windows.create({
    type: 'normal',
    focused: true,
    state: 'maximized'
}, function(window) {
    chrome.windows.getAll(function(windows) {
        for (var i = 0; i < windows.length; i++) {
            if (windows[i].id != window.id) {
                chrome.windows.remove(windows[i].id);
            }
        }
    });
});

Dodatkowo możemy wykryć, w jaki sposób to rozszerzenie jest zainstalowane i uruchomić ten kod tylko wtedy, gdy jest to instalacja deweloperska (chociaż prawdopodobnie najlepiej całkowicie usunąć całkowicie z kodu wydania). Najpierw tworzymy funkcję zwrotną dla wywołania chrome.management.getSelf, która pozwala nam sprawdzić typ instalacji rozszerzenia, co w zasadzie polega na zawinięciu powyższego kodu w instrukcję if:

function suppress_dev_warning(info) {
    if (info.installType == "development") {
        chrome.windows.create({
            type: 'normal',
            focused: true,
            state: 'maximized'
        }, function(window) {
            chrome.windows.getAll(function(windows) {
                for (var i = 0; i < windows.length; i++) {
                    if (windows[i].id != window.id) {
                        chrome.windows.remove(windows[i].id);
                    }
                }
            });
        });
    }
}

Następnie wywołujemy chrome.management.getSelf z wywołanym przez nas wywołaniem zwrotnym:

chrome.management.getSelf(suppress_dev_warning);

Ta metoda ma pewne zastrzeżenia, a mianowicie zakładamy trwałą stronę w tle, co oznacza, że ​​kod jest uruchamiany tylko raz, gdy Chrome jest otwierany po raz pierwszy. Drugą kwestią jest to, że jeśli przeładujemy / odświeżymy rozszerzenie ze strony chrome: // extensions, zamknie ono wszystkie aktualnie otwarte okna iz mojego doświadczenia wynika, że ​​czasami i tak wyświetla ostrzeżenie. Tego szczególnego przypadku można uniknąć, sprawdzając, czy jakiekolwiek karty są otwarte dla „chrome: // extensions” i nie uruchamiając, jeśli są.

SparkleStep
źródło
0

Znalazłem coś, co ładuje rozszerzenia spakowane przez użytkowników i działa pięknie:

Nadal będziesz musiał spakować to szczegółowo w celu rozszerzenia problemu, ale potem możesz wyłączyć tryb programisty i załadować przez to spakowany CRX. Nie musisz zajmować się podpisywaniem tego ani czymkolwiek.

https://chrome.google.com/webstore/detail/crosspilot/migomhggnppjdijnfkiimcpjgnhmnale?hl=en

Uwaga: nie jestem z ich zespołu, po prostu od lat szukałem eleganckiego rozwiązania.

John Sikes
źródło
-1

Watir-webdriver oparty na Ruby używa czegoś takiego:

browser=Watir::Browser.new( :chrome, :switches => %w[ --disable-extensions ] )
Superkevy
źródło
-1

Dla każdego, kto używa WebdriverIO , możesz wyłączyć rozszerzenia, tworząc swojego klienta w następujący sposób:

var driver = require('webdriverio');
var client = driver.remote({
    desiredCapabilities: {
        browserName: 'chrome',
        chromeOptions: {
            args: [
                'disable-extensions'
            ]
        }
    }
});
chris
źródło
OP nie używa WebDriverIO. Ponadto OP prosi o wyłączenie wyskakującego okienka, ale zamiast tego zdecydowałeś się wyłączyć rozszerzenia.
Cardin Lee JH
-1

Nie jestem pewien, czy to nadal jest problem dla ludzi, czy nie. Jednak przeczytałem ten post i kilka innych i w końcu bawiłem się tym i byłem w stanie sprawić, by działało w C # przy użyciu tego kodu. Wszystko to zaczerpnąłem z tego postu i prawdopodobnie niektórych postów powiązanych z tym postem.

Mam nadzieję, że to pomoże, na pewno rozwiązało moje problemy w aplikacji konsolowej C #.

Używam wersji 52.0.2743.116 m sterownika serwera Chrome Selenium 2.9

        var chromeService = ChromeDriverService.CreateDefaultService(@"C:\Selenium\InstalledServerDrivers\");
        var options = new ChromeOptions();

        options.AddArgument("--disable-extensions");                                      
        IWebDriver driver = new ChromeDriver(chromeService, options);

        driver.Url = "http://www.google.com/";
Doug
źródło
Działa jak urok (C # WebDriver 2.53.1.0, ChromeDriver 2.20.353145, Win7 x64)
Alessandro Da Rugna
-1

Teraz musimy sobie z tym poradzić, używając następujących -

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("chrome.switches", "--disable-extensions --disable-extensions-file-access-check --disable-extensions-http-throttling");

Oprócz --disable-extensionstego musimy dodać --disable-extensions-file-access-check(i / lub) --disable-extensions-http-throttlingprzełączniki chrome.

TDHM
źródło
-2

Niestety nie mogę zautomatyzować przełączania go w tryb programisty ze względu na ograniczenia szerokości przy użyciu przeglądarki w trybie iPhone. Na razie znalazłem niebezpieczne obejście, zainstaluj wersję Chrome dla deweloperów. Nie ma komunikatu ostrzegawczego, ale jestem pewien, że w dłuższej perspektywie spowoduje to więcej problemów, gdy pojawią się problemy. Mam nadzieję, że nadal mam kilka dni na znalezienie obejścia.

substytut baranka
źródło
Możesz także skorzystać z kanału beta . Jest bardziej stabilny niż dev. Jednocześnie ma więcej funkcji niż kanał stabilny.
Rob W,
1
@RobW asargent powiedział, że wyskakujące okienko jest również obecne w kanale beta. Czy to źle? code.google.com/p/chromium/issues/detail?id=337734#c2
rsanchez
1
@rsanchez Właśnie spróbowałem na Windowsie i masz rację. Dziękuję za poprawienie mnie. Używam Linuksa, więc nie mam tego problemu (:
Rob W
To już nie działa: blog.chromium.org/2015/05/ ...
Xan
@RobW Czy mógłbyś opublikować aktualizację błędu? (jest Restrict-AddIssueComment-EditIssue)
Xan
-4

Używając selenu w Pythonie, uruchamiasz sterownik z wyłączonymi rozszerzeniami w następujący sposób:

from selenium import webdriver
options = webdriver.chrome.options.Options()
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=options)

Wyskakujące okienko „Wyłącz rozszerzenia trybu programisty” nie pojawi się.

Remi
źródło
OP pyta, jak wyłączyć wyskakujące okienko, zamiast tego zdecydowałeś się wyłączyć jego rozszerzenia. : /
Cardin Lee JH