Всем привет.
Может кто сталкивался, почему в режиме ‘headless’ Selenium не нажимает на кнопку, либо нажимает как-то “виртуально” (на деле нажатия не происходит).
то в режиме обычного браузера кнопка нажимается. В режиме ‘haedless’ я получаю ошибку selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted
то кнопка нажимается в обоих режимах, но, в режиме ‘headless’ она якобы нажимается - нажатия на самом деле не происходит (остальная часть кода падает).
Может кто сталкивался с подобным? Как это можно победить?
Я бы не стал столь категоричным, что эта команда даёт вам ожидаемое разрешение экрана. Надо ещё точно сетить нужное разрешение экрана, ибо будет использоваться по-умолчанию. Проверьте точно разрешение окна, вывев хотя бы в консоль.
Попробуйте сделать скриншот в режиме хеадлесс и посмотреть что кнопка реально видна и находится там же где и в non headless режиме. Возможно вам всего лишь нужно задать размер окна т.к maximize может не срабатывать в хеадлесс
Скриншоты реально помогли.
Во-первых. Размер окна действительно не максимален. Но того, что запускается оказывается вполне достаточно. И кнопку видно и все что нужно.
Во-вторых. Ошибка оказалась не в том, что кнопка не нажимается из-за того что Selenium ее не видит. Она есть. Только она неактивна. А неактивна она из-за того, что - выше по коду подгружается файл с локальной машины. И вот пока это файл не загрузится - кнопка не активна.
То есть проблема оказалась в том, что в режиме headless не подгружается файл.