使用网络驱动程序点击页面元素后,mCustomScrollbar消失

时间:2018-09-10 23:50:06

标签: selenium-webdriver mcustomscrollbar

我正在为使用mCustomScrollbar的Web应用程序编写Webdriver自动化。对于某个测试用例,我需要滚动页面,直到某个元素进入视图,然后单击该页面元素。当我使用自动化功能执行此操作时,整个滚动条都会消失(即,上下箭头,跟踪和拖动条)。

值得注意的是:

  1. 无论是通过向下拖动滚动条还是通过单击滚动条底部的向下箭头来滚动,都会发生这种情况。
  2. 如果我不先滚动,只需单击最初可见的页面元素,就不会发生这种情况。
  3. 当我手动使用该应用程序执行这些相同的步骤时,不会发生这种情况。

我已将此行为追溯到文件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) */
        }
      });
    },

问题是:

  1. 为什么单击页面元素而不是滚动事件时会发生这种情况?

  2. 为什么仅当我使用自动化执行这些操作时才会发生这种情况,而不是在与页面正常交互时发生这种情况?

  3. 这是要在应用程序内还是在自动化系统内进行修复吗?

0 个答案:

没有答案