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.
google-chrome
google-chrome-extension
watir-webdriver
selenium-chromedriver
substytut baranka
źródło
źródło
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); }
Odpowiedzi:
Oficjalny sposób , aby wyłączyć okienko to:
Spakuj swoje rozszerzenie: przejdź do
chrome://extensions
, sprawdź Developer modei kliknijPack extensionZainstaluj rozszerzenie, przeciągając i upuszczając
.crx
plik nachrome://extensions
stronę.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:
[zip]\windows\admx\chrome.admx
doc:\windows\policydefinitions
[zip]\windows\admx\[yourlanguage]\chrome.adml
doc:\windows\policydefinitions\[yourlanguage]\chrome.adml
(niec:\windows\[yourlanguage]
)chrome://extensions
gpedit.msc
i naciśnij enter.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)
:Tymczasowo włącz Developer modew
chrome://extensions
Odinstaluj rozszerzenie, które powoduje wyskakujące okienko, używając rozszerzenia Load unpacked.
Kliknij Pack extensioni znajdź i wybierz folder zawierający pliki rozszerzeń. Nie wprowadzaj pliku klucza prywatnego, jeśli go nie masz.
Kliknij Pack extension. Plik
.crx
i.pem
zostanie utworzony w pobliżu katalogu głównego rozszerzenia. Zainstaluj rozszerzenie przy użyciu.crx
pliku i zabezpiecz.pem
go.Skopiuj identyfikator
.crx
zainstalowanego rozszerzenia do białej listy i uruchom ponownie Chrome.Wyskakujące okienko powinno zniknąć.
źródło
Podczas tworzenia sterownika chrome użyj opcji, aby go wyłączyć. Działa bez żadnych rozszerzeń.
Użyj następującego fragmentu kodu
źródło
options.AddArgument("--disable-extensions");
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.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:
Enter
klucz)F7
)F3
aby edytować i zastąpić pierwszą literę „E” dowolnym innym znakiemF9
).patch.BAT
scenariuszOczywiś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.
źródło
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?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”).
źródło
(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
Instrukcje dla Windows (z moimi dodatkami):
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 ).źródło
Ustawienie wyłączania rozszerzeń nie działa dla mnie. Zamiast tego użyłem klasy Robot, aby kliknąć przycisk Anuluj.
źródło
Istnieje alternatywne rozwiązanie, użyj Chrome-Developer-Mode-Extension-Warning-Patcher :
źródło
Cierpiałem na ten sam problem i spróbowałem następujących rozwiązań:
Kilka uwag:
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!
źródło
Na podstawie odpowiedzi Antony'ego Hatchkinsa :
Oficjalny sposób , aby wyłączyć okienko wydaje się być tak:
Spakuj swoje rozszerzenie (
chrome://extensions/
zaznacz „Tryb programisty”, naciśnij „Spakuj rozszerzenie…”) i zainstaluj je, przeciągając i upuszczając.crx
plik nachrome://extensions
stronie.(Ponieważ rozszerzenie nie pochodzi z Chrome Web Store, zostanie domyślnie wyłączone).
Następnie dla systemu Windows:
nmgnihglilniboicepgjclfiageofdfj
Start
>Run
i wpiszregedit
<ENTER>
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, ...1
i wartościąnmgnihglilniboicepgjclfiageofdfj
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.
źródło
.crx
plik po prostu wyskakujesave as window
i nie zainstaluje go. Wersja Chrome 80.0.3987.163..crx
pliku powoduje zainstalowanie rozszerzenia w wersji 81.0.4044.122. @JinSnow Spójrz na Microsoft Edge - Zasady - ExtensionInstallAllowlist1) 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
background.js
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.
źródło
--enable-automation
aby uniknąć wyskakującego okienka.--enable-automation
ma swój własny nieprzyjemny efekt uboczny: adiv
pojawia 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!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:
Pack extension
przycisk i wybierz katalog główny rozszerzenia, klikając czerwony prostokątny przycisk przeglądania pokazany na poniższym obrazku.Pack extension
przycisk wyświetlony w czerwonym kółku na poniższym obrazku.Teraz, sprawdzając
parent directory
wybraneroot directory
rozszerzenie, utworzyłyby 2 pliki[extension name].crx
i[extension name].pem
.Teraz po prostu przeciągnij i upuść
[extension name].crx
plik na stronę chrome: // extensions i zapyta za pomocą okna dialogowego dodawania aplikacji, kliknijAdd app
i 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.
źródło
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:
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:
Następnie wywołujemy chrome.management.getSelf z wywołanym przez nas wywołaniem zwrotnym:
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ą.
źródło
Czy próbowałeś użyć narzędzia do poprawiania rozszerzeń trybu programisty na Github?
Automatycznie łata przeglądarkę Chrome / Chromium / Edge i ukrywa ostrzeżenie.
źródło
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.
źródło
Watir-webdriver oparty na Ruby używa czegoś takiego:
źródło
Dla każdego, kto używa WebdriverIO , możesz wyłączyć rozszerzenia, tworząc swojego klienta w następujący sposób:
źródło
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
źródło
Teraz musimy sobie z tym poradzić, używając następujących -
Oprócz
--disable-extensions
tego musimy dodać--disable-extensions-file-access-check
(i / lub)--disable-extensions-http-throttling
przełączniki chrome.źródło
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.
źródło
Restrict-AddIssueComment-EditIssue
)Używając selenu w Pythonie, uruchamiasz sterownik z wyłączonymi rozszerzeniami w następujący sposób:
Wyskakujące okienko „Wyłącz rozszerzenia trybu programisty” nie pojawi się.
źródło