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);
});
0
répondu
kkashyap1707
2017-10-25 12:42:43