模拟鼠标事件

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

一、双击事件

大家如果看过之前的文章都知道,点击事件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~如果你觉得还行,可以分享到朋友圈,大家一起学习,共同进步~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180316G0NLFB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券