selenium+python模拟鼠标操作ActionChains

ActionChains方法列表

click(on_element=None) ——单击鼠标左键

click_and_hold(on_element=None) ——点击鼠标左键,不松开

context_click(on_element=None) ——点击鼠标右键

double_click(on_element=None) ——双击鼠标左键

drag_and_drop(source, target) ——拖拽到某个元素然后松开

drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开

key_down(value, element=None) ——按下某个键盘上的键

key_up(value, element=None) ——松开某个键

move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标

move_to_element(to_element) ——鼠标移动到某个元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置

perform() ——执行链中的所有动作

release(on_element=None) ——在某个元素位置松开鼠标左键

send_keys(*keys_to_send) ——发送某个键到当前焦点的元素

send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素

示例:

# -- coding: utf-8 --
import time
import unittest
from selenium import webdriver
from mall_method import method
from selenium.webdriver.common.action_chains import ActionChains


class WinShang(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self.driver = webdriver.Chrome()
        self.main = method(self.driver)
        self.url = self.main.eye_url()
        self.driver.get(self.url)
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)

    @classmethod
    def tearDownClass(self):
        self.driver.quit()

    def test(self):
        action = ActionChains(self.driver)
        source = self.driver.find_element('xpath', '/html/body/div[2]/div[1]/div[3]/div')
        action.drag_and_drop_by_offset(source,618, 300).perform()
        # source:鼠标拖动的原始元素
        # xoffset:鼠标把元素拖动到另外一个位置的x坐标
        # yoffset:鼠标把元素拖动到另外一个位置的y坐标
        ......

 

你可能感兴趣的:(selenium+python模拟鼠标操作ActionChains)