Остановить бесконечную загрузку страницы в selenium webdriver - python

Я загружаю страницу, используя веб-драйвер selenium. Но страница загружается бесконечно. Я попытался поймать исключение и смоделировать действие ключа esc, но это не помогло. С некоторыми ограничениями я могу использовать только Firefox [я видел, как хром добавляет решение]. Как только я попал на страницу, я не получаю контроль.

Я установил свой профиль 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)

Script, чтобы остановить загрузку:

 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

Я вижу несколько опечаток в вашем блоке try/кроме, так что давайте исправим их очень быстро...

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). Кроме того, я предполагаю, что вы используете 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 (прокрутите вниз, пока не увидите блок кода в разделе "Вот пример:")

Дайте мне знать, как оно идет, и удачи!