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
- Создайте расширение хром и увеличьте масштаб до 100% по запросу:
chrome.tabs.setZoom(null, 0);
(работает, но мигает и замедляется окно)
Ни один из них не работает должным образом.
EDIT. Протестировано с помощью Google Chrome 40.XX, 41.XX, 42.XX, 43.XX, 44.XX, 45.XX, 46.XX, 47.XX.Dev, 48.XX.Dev под Windows 7.