阻止selenium firefox驱动程序产生的弹出窗口

时间:2013-12-20 01:58:58

标签: python selenium web-crawler

我正在尝试使用selenium-python来抓取网站。我正在尝试使用firefox驱动程序(因为PhantomJS对我不起作用),但有没有办法在使用firefox驱动程序时阻止弹出窗口?

谢谢

3 个答案:

答案 0 :(得分:4)

即使我打开"禁用弹出窗口"在FireFox手动,它不适用于所有网站。解决方法是切换到弹出窗口,关闭它,然后切换回原始窗口。

这是python中的代码:

# Switch to new window opened
driver.switch_to.window(driver.window_handles[-1])
# Close the new window
driver.close()
# Switch back to original browser (first window)
driver.switch_to.window(driver.window_handles[0])

答案 1 :(得分:1)

在帧缓冲区中使用xvfb,这是一个简单的usage

它为硒提供了一个X环境。

答案 2 :(得分:0)

很抱歉,答案很晚,但是您可以使用dom.popup_maximum个人资料偏好设置,将其设置为0,如下所示:

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("dom.popup_maximum", 0)

driver = webdriver.Firefox(firefox_profile=fp)

url = "http://some.url.with.annoying.popups"

driver.get(url)

有关其他可用选项的列表,请参阅此answer