【问题标题】:mouseMove not working with Selenium and ProtractormouseMove 不适用于 Selenium 和 Protractor
【发布时间】:2015-08-19 09:37:22
【问题描述】:

您好,在 Angular 应用程序中,我有一个 Openlayers3 地图,在该地图上我有一个代表建筑物的图层。在我的测试中,我试图点击其中一个建筑物,它会触发一个带有链接到该建筑物的图像的侧面板。

问题是我的测试似乎只在 Firefox 中不起作用。我想知道是否有其他人偶然发现了这个问题,以及他们是否是一个解决方案。

我的猜测是它与.mouseMove 有关 我的代码:

// 我有一个页面对象,它有一个方法

this.klikOpGebouw = function(gebouwId) {
    return browser.executeScript("return angular.element(document.querySelector('#map')).scope().map.custom.getPixelForGebouw(" + gebouwId + ")").then(function(pixel){
        return browser.actions()
            .mouseMove(element(by.id("map")).getWebElement(), {x: pixel[0], y: pixel[1]})
            .click()
            .perform();
    });
};

在我的测试中我做了:

it('er zijn verschillende afbeeldingen gekoppeld aan het dossier', function() {
    mainPage.goTo('admin', 'admin');
    var dossierDetailPage = mainPage.dossiers().byIndex(0).openDetail();
    browser.waitForAngular();
    dossierDetailPage.klikOpGebouw(1);
    var gebouwPanel = dossierDetailPage.getGebouwPanel();
    expect(gebouwPanel.countAfbeeldingen()).toBe(3);
});

在 chrome 和 Internet Explorer 中,这可以完美运行。只有在 Firefox 中它才会变得 fubar。有什么想法吗?

Selenium driver : 2.47.1
AngularJS : 1.3.4
karma : 0.12.16
karma-jasmine: 0.2.2

亲切的问候

【问题讨论】:

    标签: javascript angularjs selenium protractor karma-jasmine


    【解决方案1】:

    这就是我们的做法。不同之处在于我们使用数字作为 X/Y 坐标,而不是对象:

    //select a value with mouse
    popup.getLocation().then(function (position) {
       popup.getSize().then(function (dimension) {
          browser.actions().
          mouseMove(popup, 0, 150).
          click().
          perform();
          expect(input.getAttribute('value')).toBe('id_3');                    
       });
    });
    

    【讨论】:

    • 试过了,但没有骰子。我们检查了被点击的像素是否真的是建筑物的像素,这似乎是事实。我们尝试使用 openlayers 方法:forEachFeatureAtPixel(pixel, function(feature, layer){}) 方法,但我们从该方法中得到的指定像素的特征为零。令人费解
    • 好的。我从我们的代码中注意到的另一个区别是您使用 getWebElement()。我们简单地使用这个: element(by.css('div[some name]'));不知道会不会有帮助...
    • 也试过了,但没有骰子。我认为这将是更基本的东西。因为它只在 Firefox 中失败
    猜你喜欢
    • 2015-12-04
    • 2017-07-09
    • 2017-09-17
    • 2017-03-23
    • 1970-01-01
    • 2013-12-19
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多