【问题标题】:Can't scroll when testing using intern.js使用 intern.js 进行测试时无法滚动
【发布时间】:2015-03-23 10:54:05
【问题描述】:

我使用moveMouseTo,但它似乎不起作用。这是我的代码。有谁能够看到它有什么问题?断言应该可以工作并且不会返回错误,因为如果您尝试在www.keylocation.sg 处向下滚动页面,它将显示一个导航栏。

之前谢谢。

define([
  'intern!object',
  'intern/chai!assert',
  './util',
  'intern/dojo/node!fs'
], function(registerSuite, assert, util, fs) {

  var suite = {
    name: 'home-navbar',
    afterEach: util.checkJSErrors,

    // testing the visibility of navigation bar in the home page
    'Home page navigation bar: navigation bar visibility': function() {
      var remote = this.remote
        .setWindowSize(1024, 768)
        .get('about:blank')
        .get('https://www.keylocation.sg');
      this.timeout = 300000;
      return remote
        // check: Home page loads, navbar is not visible
        .findById('header-menu').isDisplayed().then(assert.isFalse).end()
        // check: Scroll down to next page, navbar becomes visible
        .moveMouseTo(0,1000).end()
        .findById('header-menu').isDisplayed().then(assert.isTrue).end();
    }
  };

  registerSuite(suite);

});

【问题讨论】:

    标签: javascript dojo intern


    【解决方案1】:

    您的测试可能会失败,因为您使用的 WebDriver 服务器如何确定元素的可见性。该页面上的标题菜单最初是不可见的,因为它的上边距为负,这会将其移到视口之外。但是,根据the WebDriver spec,由于负边距而在视口之外的元素不一定被认为是不可见的。 Chrome 和 Firefox 的 WebDriver 服务器至少说它是可见的。这是 WebDriver 问题而不是实习生问题; Intern 基本上只是询问 WebDriver 服务器“这个元素是否可见”并告诉你答案。

    由于isDisplayed 在这种情况下似乎不起作用,您可以改为检查元素是否具有disabled 类,这就是导致它具有负边距的原因。

    不幸的是,试图简单地将鼠标移动到元素上下文之外 1000 像素并不会滚动页面。当您不给moveMouseTo 一个元素时,它会在当前上下文元素中移动(最后找到的东西)。当没有上下文时,它会在最外面的元素内移动,在这种情况下,它只有 632px 高。您需要将上下文设置为足够高以包含移动偏移的元素,或者您可以在页面底部找到一个元素,例如页脚,然后将鼠标移动到该元素:

    .findByCssSelector('.wrapper')
    .moveMouseTo(0, 1500)   // 1000 pixels is too small to show the scrollbar
    .end()
    

    .findByTagName('footer')
    .then(function (footer) {
        return this.parent.moveMouseTo(footer);
    })
    .end()
    

    您的测试还有一些其他问题您可能还需要更正。最初的get('about:blank') 不是必需的。没有理由将命令链的两半分开;超时适用于整个链,无论是拆分还是整个。在moveMouseTo 之后不需要endend 用于从命令链的上下文中弹出元素,moveMouseTo 不会向上下文中添加任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2017-01-02
      相关资源
      最近更新 更多