17

Chrome Extension Downloaderにアクセスして、「Adblock-Plus_v1.4.1」の .crx ファイルを取得しました。

作業中のディレクトリに投げて、実行しました:

from selenium import webdriver

chop = webdriver.ChromeOptions()
chop.add_extension('Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)

それが存在することを完全に認めていますが、ChromeDriver.exeスタイルメッセージのように見えるものを私に与えます:

ERROR:extension_error_reporter.cc(56)] Extension error: Package is invalid: 'CRX_PUBLIC_KEY_INVALID'.

その後、最終的に webdriver 例外:

selenium.common.exceptions.WebDriverException: Message: u'Extension could not be installed'

例外をスローする前に ChromeDriver タイプのメッセージを最初に配置するため、コードに問題がないことはほぼ 100% 確信しています。

'C:\Documents and Settings\\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions'また、開発者モードをオンにして自分でパックしようとしchrome://extensions/、作成された.crxを使用しようとしましたが、まったく同じエラーメッセージが表示されました

私も別の方法を試しました:

chop = webdriver.ChromeOptions()
chop.add_argument('--load_extension=Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)

これにより、例外や Chrome ドライバーのエラーが発生するchrome://extensions/ことはありませんが、手動でアクセスしても、拡張機能が読み込まれているとは表示されません...

私の問題は、実際の .crx ファイル自体に関係していると思います。エラーメッセージの性質上...しかし同時に、webdriver.Chrome()セッションを生成してから手動で移動すると、chrome://extensions/物理的にドラッグアンドドロップして同じ.crxファイルをインストールできるため、わかりません。

編集:実際に質問をしていないことに気付いたので、ここにあります:

私は何を間違っていますか?この Chrome 拡張機能をロードできないのはなぜですか? それは私のコードですか、それとも .crx ファイルそのものですか?

更新:@Pat Meeker私はこれを試しましたが、JavaからPythonへの変換で何かを失っています

capability = webdriver.DesiredCapabilities.CHROMEにすべての引数を含む辞書が返されるiので、必要な部分は引数を追加することだけであると確信しています。

options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=C:/Users/USER_NAME/AppData/Local/Google/Chrome/User Data/Default/')

これは私が今持っているものであり、driver = webdriver.Chrome(chrome_options=options)クロムを開こうとするたびに、以前の位置を覚えているように見えますが、それ以上、ブックマークも拡張機能も何もありません。

4

2 に答える 2

21

プログラムにこの余分な行を追加するだけです

from selenium.webdriver.chrome.options import Optionsそれが動作します...

このような

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chop = webdriver.ChromeOptions()
chop.add_extension('Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)
于 2014-06-12T11:00:37.573 に答える
0

私の露出度の高い経験から、問題はload-extesionコードではなく引数にあり、Chrome Web Store 以外の拡張機能をテストする際に同じ問題が発生したためです。ドラッグ&ドロップで拡張機能をインストールし、--user-data-dir引数のみを使用することで、なんとか解決しました。

これは C# と Chrome 33 でうまくいきました。

于 2014-07-07T16:00:19.707 に答える