在selenium webdriver中停止无限页面加载 - python

时间:2015-08-07 11:30:59

标签: python selenium-webdriver

我正在使用selenium web driver加载页面。但页面无限加载。 我试图抓住异常并模拟esc键操作,但这没有帮助。由于一些限制,我只能使用Firefox [我已经看到chrome添加解决方案]。一旦我点击页面,我就无法获得控制权。

我将我的Firefox个人资料设为

    firefoxProfile = FirefoxProfile()
    firefoxProfile.set_preference('permissions.default.stylesheet', 2)
    firefoxProfile.set_preference('permissions.default.image', 2)
    firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so','false')
    firefoxProfile.set_preference("http.response.timeout", 10)
    firefoxProfile.set_preference("dom.max_script_run_time", 10)

停止加载的脚本:

 try:
       driver.set_page_load_timeout(10)
       driver.get('http://www.example.com'     
 except Exception
        print 'time out'
        driver.send_keys(Keys.CONTROL +'Escape')

1 个答案:

答案 0 :(得分:7)

我在你的try / except块中看到了一些拼写错误,所以让我们快点纠正这些错误......

try:
      driver.set_page_load_timeout(10)
      driver.get('http://www.example.com')
except Exception:
      print 'time out'
      driver.send_keys(Keys.CONTROL +'Escape')

我一直在使用Selenium和Python一段时间(也使用Firefox webdriver)。另外,我假设你正在使用Python,只是从你的代码的语法。

无论如何,您的Firefox配置文件应该有助于解决此问题,但看起来您实际上并未将其应用于驱动程序实例。

尝试以下几点:

from selenium import webdriver # import webdriver to create FirefoxProfile

firefoxProfile = webdriver.FirefoxProfile()
firefoxProfile.set_preference('permissions.default.stylesheet', 2)
firefoxProfile.set_preference('permissions.default.image', 2)
firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so','false')
firefoxProfile.set_preference("http.response.timeout", 10)
firefoxProfile.set_preference("dom.max_script_run_time", 10)

# now create browser instance and APPLY the FirefoxProfile
driver = webdriver.Firefox(firefox_profile=firefoxProfile)

这适用于我,使用Python 2.7和Selenium 2.46。

来源(Selenium docs):http://selenium-python.readthedocs.org/en/latest/faq.html#how-to-auto-save-files-using-custom-firefox-profile(向下滚动一下,直到你看到“这是一个例子:”下的代码块)

让我知道它是怎么回事,祝你好运!