【selenium-09】模拟鼠标事件

【selenium-09】模拟鼠标事件


上节我们了解了模拟键盘操作,这节我们继续了解鼠标事件,废话不多说,搞起来~

【selenium-09】模拟鼠标事件

一、双击事件

大家如果看过之前的文章都知道,点击事件click(),那么猜猜双击事件是什么?对,没错,就是double_click(),举个栗子试试:

Ooops,报错了~

【selenium-09】模拟鼠标事件

这是为什么?仔细看发现提示,双击不属于webelement对象的方法,那么这个方法在哪呢?对,你又猜对了,处了click()方法属于webelement对象,其他的鼠标事件都被放在了一个名为ActionChains的库中,我们需要在使用前导入这个库:

#encoding=utf-8

from selenium import webdriver

from selenium.webdriver.common import keys

from selenium.webdriver.common.action_chains import ActionChains

import time

fuck_test=webdriver.Chrome()

fuck_test.maximize_window()

fuck_test.get("https://www.baidu.com")

fuck_test.find_element_by_id("kw").send_keys("phyger")

time.sleep(2)

fuck_test.find_element_by_id('su').click() #单击

time.sleep(2)

#定位元素

fuck=fuck_test.find_element_by_id('kw')

time.sleep(2)

#对定位到的元素进行双击操作

ActionChains(fuck_test).double_click(fuck).perform()

效果:

【selenium-09】模拟鼠标事件

二、右击事件

对,你没猜错,是这样的:context_click(xxx).perform()

举个栗子:

#encoding=utf-8

from selenium import webdriver

from selenium.webdriver.common import keys

from selenium.webdriver.common.action_chains import ActionChains

import time

fuck_test=webdriver.Chrome()

fuck_test.maximize_window()

fuck_test.get("https://www.baidu.com")

fuck_test.find_element_by_id("kw").send_keys("phyger")

time.sleep(2)

fuck_test.find_element_by_id('su').click() #单击

time.sleep(2)

#定位元素

fuck=fuck_test.find_element_by_id('kw')

time.sleep(2)

#对定位到的元素进行右击操作

ActionChains(fuck_test).context_click(fuck).perform()

效果:

【selenium-09】模拟鼠标事件

三、鼠标拖拽

方法:drag_and_drop(xxx).perform()

举个栗子:

#encoding=utf-8

from selenium import webdriver

from selenium.webdriver.common import keys

from selenium.webdriver.common.action_chains import ActionChains

import time

fuck_test=webdriver.Chrome()

fuck_test.maximize_window()

fuck_test.get("http://formbuild.leipi.org/")

time.sleep(2)

#定位元素

fuck=fuck_test.find_element_by_xpath('//*[@id="1"]/div[1]/div/input')

#要移动到的元素

test=fuck_test.find_element_by_xpath('//*[@id="target"]')

time.sleep(2)

#对定位到的元素进行拖拽操作

ActionChains(fuck_test).drag_and_drop(fuck,test).perform()

效果:

前:

【selenium-09】模拟鼠标事件

后:

【selenium-09】模拟鼠标事件

如你所见,右边的模块成功被拖拽到了左边的表单中

注:有人可能会问,右击之后为什么没有进行操作啊,实话是小编的水平也就到这个程度,至于右击菜单实现的操作,很多都是可以通过键盘组合实现,如果你有突破性的发现,欢迎与我沟通交流

ok,今天就到这,短小精悍是我们的目标,祝你看的愉快~

兄dei~如果你觉得还行,可以分享到朋友圈,大家一起学习,共同进步~

【selenium-09】模拟鼠标事件


扫码关注,精彩不容错过

【selenium-09】模拟鼠标事件