Selenium,如何用插件启动Firefox?

时间:2011-09-19 22:16:47

标签: python firefox selenium

我想加载Firefox Addon RequestPolicy。这就是我尝试的方式:

rp = open(wd + "/requestpolicy.xpi")
firefoxProfile = FirefoxProfile()
firefoxProfile.add_extension(rp)

self.driver = webdriver.Firefox(firefoxProfile)

self.usr = user.User(self.driver, username, password, world)
self.usr.login()

没有错误,according to the Docs它应该有效,但事实并非如此,它仍然在没有插件的情况下启动。

接下来,我尝试过这样称呼它:

self.driver = webdriver.Firefox(browser_profile=firefoxProfile)

输出:

TypeError: __init__() got an unexpected keyword argument 'browser_profile'

但这是python的一个方面,我不太了解。我有了这个主意,因为source看起来就是这样。

4 个答案:

答案 0 :(得分:6)

我没有足够的Stackoverflow rep 对你的问题发表评论,不幸的是我不知道你的问题的答案,但是你需要调用{{{ 1}}使用 firefox_profile ,而不是 browser_profile ,就像你一样。

另请参阅:http://code.google.com/p/selenium/source/browse/trunk/py/selenium/webdriver/firefox/webdriver.py#33

答案 1 :(得分:3)

我所做的和工作的是:

profile=webdriver.FirefoxProfile()
profile.add_extension("/home/.../.mozilla/firefox/zrdb9ki8.default/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}.xpi") # for adblockplus

profile.set_preference("extensions.adblockplus.currentVersion", "2.8.2")
Fox = webdriver.Firefox(profile)
Fox.get(website_Url) #https://.....

答案 2 :(得分:2)

我花了几个小时才找到解决办法。

您需要做的就是将扩展名下载为.xip文件。

然后将此行添加到您的代码中:

a

用扩展名.xip文件的路径替换“ / Users / someuser / app / extension.xpi”

答案 3 :(得分:1)

此外,您不应直接打开xpi文件。而是试着给出地址:

firefoxProfile.add_extension(wd + "/requestpolicy.xpi")