javascript - Cómo mover el mouse a un punto arbitrario usando Protractor/Selenium
point mousemove (3)
¿Es posible mover el mouse a coordenadas arbitrarias en la pantalla / relativo a un elemento en las pruebas del transportador? Veo que la gente recomienda usar Robot para usuarios de Java, pero por supuesto no puedo usar eso en JavaScript.
Lo descubrí por mi cuenta ... solo hice una investigación profunda en los documentos de Protractor y Selenium. Aquí hay un código de ejemplo:
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();
});
También encontré una solución para simular una acción de barrido.
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();
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);
});