Ниже приведены методы, которые я пробовал:
Метод 1. Использование JavaScriptExecutor
Код: Выделить всё
clickOnCanvasMethod1(WebElement canvas, int x, int y) {
JavascriptExecutor js = (JavascriptExecutor) driver;
String script = "var canvas = arguments[0];"
+ "var rect = canvas.getBoundingClientRect();"
+ "var x = arguments[1];"
+ "var y = arguments[2];"
+ "canvas.dispatchEvent(new MouseEvent('click', {"
+ " clientX: rect.left + x,"
+ " clientY: rect.top + y,"
+ " bubbles: true"
+ "}));";
js.executeScript(script, canvas, x, y);
}
Код: Выделить всё
clickOnCanvasMethod2(WebElement canvas) {
Actions actions = new Actions(driver);
actions.moveToElement(canvas, 200, 200)
.clickAndHold()
.moveByOffset(100, 100)
.release()
.perform();
}
Код: Выделить всё
clickOnCanvasMethod3(WebElement canvas) {
JavascriptExecutor js = (JavascriptExecutor) driver;
String script = "var canvas = arguments[0];"
+ "var rect = canvas.getBoundingClientRect();"
+ "canvas.dispatchEvent(new MouseEvent('mousedown', {"
+ " clientX: rect.left + 200,"
+ " clientY: rect.top + 200,"
+ " bubbles: true"
+ "}));"
+ "canvas.dispatchEvent(new MouseEvent('mousemove', {"
+ " clientX: rect.left + 300,"
+ " clientY: rect.top + 300,"
+ " bubbles: true"
+ "}));"
+ "canvas.dispatchEvent(new MouseEvent('mouseup', {"
+ " clientX: rect.left + 300,"
+ " clientY: rect.top + 300,"
+ " bubbles: true"
+ "}));";
js.executeScript(script, canvas);
}
URL-адрес ссылки: Пример рисования MapboxМожет ли кто-нибудь помочь мне определить проблему или предложить альтернативный подход к выбору области на карте?
Спасибо за помощь!
Подробнее здесь: https://stackoverflow.com/questions/792 ... -with-java
Мобильная версия