Я пытаюсь нажать на ссылку, используя занозу с безголовым драйвером chrome. Это HTML Я нацеливаюсь:
<li class="dropdown open">
<a id="Export" role="button" class="dropdown-toggle" aria-haspopup="true" aria-expanded="true" href="#">Export List <span class="caret"></span></a>
<ul role="menu" class="dropdown-menu" aria-labelledby="Export">
<li role="presentation" class=""><a role="menuitem" tabindex="-1" href="#">Export to PDF</a></li>
<li role="presentation" class=""><a role="menuitem" tabindex="-1" href="#">Export to CSV</a></li>
</ul>
</li>
При запуске не без кода этот код работает:
browser.find_by_id('Export').click()
browser.find_by_text('Export to PDF').click()
Однако при работе безголового браузера I получить следующую проблему:
ElementClickInterceptedException: Message: element click intercepted:
Element <a id="Export" role="button" class="dropdown-toggle" aria-haspopup="true" aria-expanded="false" href="#">...</a>
is not clickable at point (392, 382).
Other element would receive the click: <div class="modal hide-old fade in" tabindex="-1" style="display: block;">...</div>
(Session info: headless chrome=79.0.3945.117)
попытка только browser.find_by_text('Export to PDF').click()
с другой стороны,
приводит к этой ошибке:
ElementNotInteractableException: Message: element not interactable
неожиданно, есть элемент
<div class="modal fade" id="modal" tabindex="-1"></div>
, но он находится в совершенно другой части страницы, ниже иерархии <body>
.
Откуда может быть разница в поведении между безголовым и не- без головы? (обратите внимание, что это одностраничное приложение, которое загружает HTML выше с JS).