Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Имитация движения мыши с нажатой кнопкой


(Александр) #1

Столкнулся с проблемой. Необходимо средствами selenium имитировать действие подобное drag and drop. Требуется на указанной координете нажать мышью и с зажатой кнопкой провести вправо примерно на 300 пикселей. Писал в теме Drag-n-Drop и клик на веб-страничке по указанным координатам (С#)
но ответа так и не получил. Заранее спасибо! Пытался сделать как в примере не получилось.

    block_1 = container.find_elements_by_css_selector('rect')[10]
    action_chains = ActionChains(driver)
    action_chains.click_and_hold(block_1)
    action_chains.move_by_offset(200, 200)
    action_chains.release()
    action_chains.perform()

(Виктор) #2

У вас действие сильно отличается от drag and drop? это просто какая-то вариация, или может это что-то вроде рисования курсором мыши?

Насчёт selenium не знаю, стоит попробовать разные варианты того решения, что у вас есть, дополнительные аргументы для методов и т.п.
Ещё можно попробовать симулировать нужное действие через javascript, или сразу через javascript вызвать ту функцию, которая обычно запускается как результат “ручных” действий.
Ну и совсем запасной вариант - это посылание в реальный браузер windows-сообщений, вроде WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP и проч., но я сам такого не пробовал.