上节我们了解了模拟键盘操作,这节我们继续了解鼠标事件,废话不多说,搞起来~
一、双击事件
大家如果看过之前的文章都知道,点击事件click(),那么猜猜双击事件是什么?对,没错,就是double_click(),举个栗子试试:
Ooops,报错了~
这是为什么?仔细看发现提示,双击不属于webelement对象的方法,那么这个方法在哪呢?对,你又猜对了,处了click()方法属于webelement对象,其他的鼠标事件都被放在了一个名为ActionChains的库中,我们需要在使用前导入这个库:
#encoding=utf-8
from selenium import webdriver
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()
效果:
二、右击事件
对,你没猜错,是这样的:context_click(xxx).perform()
举个栗子:
#encoding=utf-8
from selenium import webdriver
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()
效果:
三、鼠标拖拽
方法:drag_and_drop(xxx).perform()
举个栗子:
#encoding=utf-8
from selenium import webdriver
import time
fuck_test=webdriver.Chrome()
fuck_test.maximize_window()
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()
效果:
前:
后:
如你所见,右边的模块成功被拖拽到了左边的表单中
注:有人可能会问,右击之后为什么没有进行操作啊,实话是小编的水平也就到这个程度,至于右击菜单实现的操作,很多都是可以通过键盘组合实现,如果你有突破性的发现,欢迎与我沟通交流
ok,今天就到这,短小精悍是我们的目标,祝你看的愉快~
兄dei~如果你觉得还行,可以分享到朋友圈,大家一起学习,共同进步~
领取专属 10元无门槛券
私享最新 技术干货