15

Chrome Extension Downloaderにアクセスして、 'Adblock-Plus_v1.4.1'の.crxファイルを探しました。拡張子(.crxファイル)を持つPythonを使用してSelenium WebDriverを実行

私はで作業ディレクトリイムでそれを投げ、その後、走っ:

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%確信しています。

私はまた、上の開発者モードでchrome://extensions/'C:\Documents and Settings\\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions'に行くことによって、それを自分自身をパックすることを試み作成された.crxを使用しようと、私はまた、別の方法を試してみました

正確に同じエラーメッセージが表示されました:

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

私の問題を考えて、これは例外、あるいはクロムドライバのエラーが発生しdoesntのが、私は手動でchrome://extensions/に行けば、それは拡張機能がロードされていると言うdoes notの...

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

編集:私は間違って何をやっている

:私は実際にdidntのことがあるので、ここで質問して実現?このクロムエクステンションを読み込めないのはなぜですか?それは私のコード、または.crxファイルそのものですか?

UPDATE:@Pat Meekerの アイブ氏はこれを試してみましたが、イム

capability = webdriver.DesiredCapabilities.CHROMEをPythonのためにJavaからの翻訳で何かを失うことは、私だけの部分かなり確信しそうイム、私にすべての私の引数を持つ辞書を返します。引数を追加するだけです。

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)クロムにしようとしたときに開き、そして、以前の位置を覚えているようだが、何よりも、何のブックマーク、何の拡張子なし何もありません。

+1

拡張機能を実際に追加するプロセスをテストしますか?または、拡張機能が必要ですか? 後者の場合、特定のクロムユーザープロファイルを使用して手動で拡張機能を追加してから、テストで同じWebプロファイルを使用してWebDriverをセットアップすることができます。 プロファイルでWebDriverを設定する際の答えは次のとおりです。http://stackoverflow.com/a/15270384/2386700 –

答えて

17

はちょうどあなたのプログラムの中でこの余分な行を追加し、問題がload-extesion引数ではなく、あなたをしている私の露出度の高い経験から、この

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) 
+0

linuxでこれを行うにはどうすればよいですか? –

0

よう

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

Chromeウェブストア以外の拡張機能のテストでも同じ問題が発生していたため Drag & Dropという拡張子をインストールし、--user-data-dir引数のみを使用して解決することができました。

これはC#とChrome 33でうまくいきました。私はそれが軽いと思っていますが、数ヶ月間私のために働くので、助けてくれることを願っています。

関連する問題