Соответствующее Дерево DOM помогло бы нам построить канонический ответ. Однако при работе с <canvas>
элементами вам необходимо учесть несколько вещей:
- В верхнем левом углу
<canvas>
есть координаты (0
, 0
), а - Используя команды класса W3 C Действие , смещения от центра элемента.
Обычно элемент <canvas>
будет иметь следующие атрибуты:
width
height
style
, содержащие атрибуты width
, height
, et c
Например:
<canvas id="canvas" width="227" height="294" style="position: absolute; display: block; background-color: rgb(255, 255, 255); width: 227.53px; height: 294px;"></canvas>
Теперь, чтобы щелкнуть по центру элемента <canvas>
на веб-странице, вам действительно не нужно вычислять:
we.getSize().width/2;
we.getSize().height/2;
As:
Текущая реализация Action класса команды, смещения от центра элемента.
Итак, вы можете использовать следующее решение:
WebElement canvas = new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.id("canvas")));
//clicking on the centre
new Actions(driver).moveToElement(canvas).click().build().perform();
Incase, вы хотите нажать на смещение, вам нужно используйте moveByOffset()
следующим образом:
* 10 60 *
Ссылка
Соответствующее подробное обсуждение можно найти в: