我想用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/)不起作用。 有人知道这个问题的解决方案吗?
答案 0 :(得分:4)
原因是adblock plus manifest文件包含一些unicode字符。
有两种可能的解决方案:
更改selenium / webdriver / firefox / firefox_profile.py中的代码
with open(os.path.join(addon_path, 'install.rdf'), 'r') as f:
到with open(os.path.join(addon_path, 'install.rdf'), 'r', encoding='utf8') as f:
此问题也是您可以向硒虫追踪器提交故障单的问题,以便在硒本身中解决。