我正在为使用mCustomScrollbar的Web应用程序编写Webdriver自动化。对于某个测试用例,我需要滚动页面,直到某个元素进入视图,然后单击该页面元素。当我使用自动化功能执行此操作时,整个滚动条都会消失(即,上下箭头,跟踪和拖动条)。
值得注意的是:
我已将此行为追溯到文件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) */
}
});
},
问题是:
为什么单击页面元素而不是滚动事件时会发生这种情况?
为什么仅当我使用自动化执行这些操作时才会发生这种情况,而不是在与页面正常交互时发生这种情况?
这是要在应用程序内还是在自动化系统内进行修复吗?