У меня проблемы со скриптом, который работал до прошлой недели (и я ничего не обновлял). Я использую селен с python на веб-сайте, который по какой-то причине очень медленный, и нужная мне информация загружается относительно быстро, но драйвер просто будет ждать, пока страница не загрузится полностью.
Чтобы избежать этого, я попытался:
- «Стремительный» режим в
DesiredCapabilities().FIREFOX
browser.set_page_load_timeout(3)
С первым вариантом я обнаружил, что мне нужно было вставить много ожиданий, в то время как со вторым сценарий был в целом стабильным.
Страница будет пытаться загрузить, затем «потерпит неудачу» в течение тайм-аута, но тогда я смогу получить информацию, загруженную за это время.
Теперь драйвер просто зависнет после исключения тайм-аута. Независимо от того, что я делаю, (получаю любой веб-сайт или даже удаляю куки), я всегда получу исключение тайм-аута.
browser.delete_all_cookies()
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
browser.delete_all_cookies()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 878, in delete_all_cookies
self.execute(Command.DELETE_ALL_COOKIES)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout
(Session info: chrome=75.0.3770.100)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.5 x86_64)
Настоящая цель этого сценария - иметь возможность «действовать» до того, как страница будет считаться полностью загруженной.
browser.set_page_load_timeout(3)
позволил мне это сделать, но теперь, когда выдается исключение, драйвер не работает, и единственная команда, которой он будет подчиняться, это browser.close()
или quit()
.
Есть ли какие-либо альтернативы режиму "нетерпеливый"?