Comment déplacer la souris vers un point arbitraire en utilisant Protractor / Selenium

est-il possible de déplacer la souris à des coordonnées arbitraires sur l'écran/par rapport à un élément dans les essais du Rapporteur? Je vois des gens recommander L'utilisation de Robot pour les utilisateurs de Java, mais bien sûr, je ne peux pas utiliser cela dans JavaScript.

18
demandé sur Andy 2015-02-24 23:26:44

3 réponses

j'ai pensé à elle pour moi-même...j'ai juste creusé profondément dans la documentation du rapporteur et du sélénium. Voici un exemple de code:

  it('should pan plots when you click and drag', function() {
    var plot0 = element(by.css('.plot > canvas'));
    browser.actions()
      .mouseMove(plot0, {x: 100, y: 100}) // 100px from left, 100 px from top of plot0
      .mouseDown()
      .mouseMove({x: 400, y: 0}) // 400px to the right of current location
      .perform();
  });
32
répondu Andy 2015-02-25 17:29:45

j'ai aussi trouvé une solution pour simuler une action de balayage.

var card = element(by.css('#card'));

browser.actions()
  .mouseMove(card, {x: 100, y: 100})
  .mouseDown()
  .mouseMove({x: 0, y: -400})
  .perform();

browser.sleep(500);

browser.actions()
  .mouseUp()
  .perform();
4
répondu PurpleOrange 2016-07-27 09:25:44
var graphDimensions = {// see [1]
  Width: 0,
  Height: 0
};
company_page.company_Chart_Graph().getAttribute('width')
  .then(function(width) {
    graphDimensions.Width = parseInt(width);
  });

company_page.company_Chart_Graph().getAttribute('height').then(function(height) {
  graphDimensions.Height = parseInt(height);

  console.log('W' + graphDimensions.Width);
  console.log('H' + graphDimensions.Height);

  var plot0 = company_page.company_Chart_Graph();
  browser.actions()
    .mouseMove(plot0, {
      x: 0,
      y: 0
    })
    .mouseDown()
    .mouseMove(plot0, {
      x: graphDimensions.Width,
      y: graphDimensions.Height
    })
    .mouseUp()
    .perform();

  browser.driver.sleep(23000);
  company_page.company_ReportDownload().click();
  browser.driver.sleep(23000);
});

[1]: http://testingalert.com/

0
répondu kkashyap1707 2017-10-25 12:42:43