使用Adblock Plus扩展(Python)打开Firefox Webdriver

时间:2015-05-06 08:17:32

标签: python firefox selenium webdriver adblock

我想用Python Webdriver和Adblock Plus Extension打开Firefox。

这是我的代码:

java.util.*

我收到以下错误:

  

追踪(最近一次通话):     文件“adblock_test.py”,第6行,in       ffprofile.add_extension(扩展= 'adblock.xpi')     文件“C:\ Python34 \ lib \ site-packages \ selenium \ webdriver \ firefox \ firefox_profile   .py“,第92行,在add_extension中       self._install_extension(扩展)     文件“C:\ Python34 \ lib \ site-packages \ selenium \ webdriver \ firefox \ firefox_profile   .install“,第269行,在_install_extension中       addon_details = self._addon_details(addon)     文件“C:\ Python34 \ lib \ site-packages \ selenium \ webdriver \ firefox \ firefox_profile   .ad“,第341行,在_addon_details中       manifest = f.read()     在解码中文件“C:\ Python34 \ lib \ encodings \ cp1252.py”,第23行       return codecs.charmap_decode(input,self.errors,decoding_table)[0]   UnicodeDecodeError:'charmap'编解码器无法解码位置964:char中的字节0x8d   acter映射到undefined

其他扩展程序正好使用此代码而没有任何问题。 只有Adblock Plus扩展程序(https://addons.mozilla.org/de/firefox/addon/adblock-plus/)不起作用。 有人知道这个问题的解决方案吗?

1 个答案:

答案 0 :(得分:4)

原因是adblock plus manifest文件包含一些unicode字符。

有两种可能的解决方案:

  1. 更改selenium / webdriver / firefox / firefox_profile.py中的代码

    with open(os.path.join(addon_path, 'install.rdf'), 'r') as f:

  2. with open(os.path.join(addon_path, 'install.rdf'), 'r', encoding='utf8') as f:

    1. 下载adb​​lock_plus.xpi并从清单中删除本地化字符串(您可以使用任何存档管理器打开.xpi)
    2. 此问题也是您可以向硒虫追踪器提交故障单的问题,以便在硒本身中解决。