| BH TT Selenium Класс Actions Actions actions = new Actions(driver); actions.clickAndHold(); click() sendKeys() clickAndHold // Зажать кнопку мыши и не отпускать moveToElement/moveByOffset // Переместить курсор на другой элемент или на указанное расстояние в пикселях release // Отпустить кнопку мыши keyDown // Нажать клавишу keyUp // Отпустить клавишу // docs для класса Actions Методы по 2 раза --> С параметром и без -- Базовая команда без параметра выполняет клик в текущем положении курсора -- Команда с параметром выполняется в 2 действия: Выполняется перемещение мыши в центр переданного элемента (Фокус) Выполняется действие Команды с параметрами x/y- offset перемещают курсор не на центр элемента, а на указанный сдвиг (см. видео 8:00) --> Сдвигает курсор относительно чего-то Команда pause() наверняка будет использоваться и в будущем. Deprecated отменят Команда moveToElement cxbnftn cldbu jnzjcbntkmzj ktdjuj dthüztuj eukf Чтобы считалось от центра надо выполнить 2 команды: moveToElement(el) moveByOffset(5,5) то есть сначала поставить курсор в центр, а потом сдвинуть на нужное расстояние Просто навести мышу на элемент (Например при работе с всплывающим меню) --> Навести мышу на основной элемент --> Навести на всплывающее меню --> ... Команда .dragAndDrop(el1, el2) будет автоматически развёрнут в цепочки из 4 простых действий // 2 механизма (подхода) симуляции действий мыши и клавы 1. do what I mean --> Делай то что я хочу (Имею ввиду) // click() и sendKeys() 2. do what I say --> Делай то что я говорю // Advanced Interaction API // Класс Actions , который реализует сложные действия В Java и C# -- Класс Actions В Python -- Класс ActionsChains Rubi и JavaScript как-то по другому Ссылки Java: seleniumhq.github.io C#: seleniumhq.github.io Python: seleniumhq.github.io Ruby: seleniumhq.github.io JavaScript: seleniumhq.github.io Примеры кода Java import org.openqa.selenium.interactions.Actions; //... new Actions(driver) .moveToElement(drag) .clickAndHold() .moveToElement(drop) .release() .perform(); C# new Actions(driver) .MoveToElement(drag) .ClickAndHold() .MoveToElement(drop) .Release() .Perform(); Python from selenium.webdriver.common.action_chains import ActionChains ActionChains(driver).move_to_element(drag).click_and_hold().move_to_element(drop).release().perform() Ruby @driver.action.move_to_element(drag).click_and_hold().move_to_element(drop).release().perform JavaScript driver.actions() .moveToElement(drag) .clickAndHold() .moveToElement(drop) .release() .perform(); |