Google Chrome не обновляет элементы специальных возможностей ( AutomationElement ), когда пользователь прокручивает страницу в браузере.
Чтобы воспроизвести это:
- Включите доступность рендерера с помощью:
"chrome --force-render-accessibility"
или установив Глобальную доступность на"chrome://accessibility"
. - Перейдите на страницу http://en.wikipedia.org/wiki/Google.
- Откройте inspect.exe в режиме автоматизации пользовательского интерфейса (из комплектов Windows), найдите элемент «Ссылки на связанные статьи».
- Вернитесь в Chrome, прокрутите вниз, пока внизу не появится «Ссылки на связанные статьи» внизу.
- Элемент «Ссылки на похожие статьи» выделен вне экрана
Я нашел несколько ручных решений, которые могут заставить Chrome обновить его:
- Установите Zoom на 90%, затем установите его обратно на 100% (очень и очень уродливо)
- Выключите доступ, затем включите
chrome://accessibility/
Что я ищу, так это возможность программно выполнить одну из этих операций или любую операцию, которая может заставить Chrome обновить свое дерево кеша.
Что я пробовал:
- Изменить размер окна с
PInvoke/MoveWindow
- Перерисовать окно с
PInvoke/Redrawwindow
- Создание расширения Chrome и принудительное увеличение до 100% по требованию:
chrome.tabs.setZoom(null, 0);
(работает, но мигает и замедляет окно)
Ни один из них не работает должным образом.
РЕДАКТИРОВАТЬ : Протестировано с Google Chrome 40.XX, 41.XX, 42.XX, 43.XX, 44.XX, 45.XX, 46.XX, 47.XX.Dev, 48.XX.Dev под Windows 7.