Я пишу автоматизацию Webdriver для веб-приложения, которое использует mCustomScrollbar. Для определенного теста мне нужно прокрутить страницу, пока не появится определенный элемент, а затем щелкнуть этот элемент страницы. Когда я делаю это, используя свою автоматизацию, вся полоса прокрутки исчезает (то есть стрелки вверх и вниз, дорожка и полоса перетаскивания).
Примечание:
- Это происходит независимо от того, прокручиваю ли я, перетаскивая полосу прокрутки вниз или щелкая стрелку вниз в нижней части полосы прокрутки.
- Это не происходит, если я не прокручиваю сначала, а просто нажимаю на элемент страницы, который изначально видим.
- Это не происходит, когда я выполняю эти же шаги вручную, используя приложение.
Я проследил это поведение до файла jquery.mCustomScrollbar.js, строка 1777:
$(".mCSB_" + d.idx + "_scrollbar").css("visibility", "hidden"); /* hide scrollbar(s) */
Это внутри следующей функции:
/* sets content wrapper scrollTop/scrollLeft always to 0 */
_wrapperScroll = function () {
var $this = $(this), d = $this.data(pluginPfx),
namespace = pluginPfx + "_" + d.idx,
wrapper = $("#mCSB_" + d.idx + "_container").parent();
wrapper.bind("scroll." + namespace, function (e) {
if (wrapper.scrollTop() !== 0 || wrapper.scrollLeft() !== 0) {
$(".mCSB_" + d.idx + "_scrollbar").css("visibility", "hidden"); /* hide scrollbar(s) */
}
});
},
Вопросы:
Почему это происходит, когда я щелкаю элемент страницы, а не событие прокрутки?
Почему это происходит только тогда, когда я выполняю эти действия с помощью своей автоматизации, а не при обычном взаимодействии со страницей?
Это нужно исправить в приложении или в автоматизации?