Python webdriver API(三)鼠标事件

一、鼠标事件

ActionChains类包含了鼠标操作。

ActionChains类中鼠标操作的常用方法:

context_click()------------------右击

double_click()-------------------双击

drag_and_drop()---------------拖动

move_to_element()------------鼠标悬停在一个元素上

click_and_hold()----------------在一个元素上按鼠标左键

ActionChains的使用

from selenium.webdriver.common.actionchains import ActionChains

ActionChains的执行原理:

调用ActionChains方法的时候,用户行为不会立即执行,而是将所有的操作放在一个队列中,当执行perform()的时候,按照放入队列的顺序先进先出执行

ActionChains的书写方法:

链条式方法:

ActionChains(driver).context_click(right_click).perform()

分布式方法:

ActionChainsdriver = ActionChains(driver).context_click(right_click)

ActionChainsdriver.perform()

ActionChains鼠标操作可以分为3类:

鼠标的点击、移动和拖曳

鼠标的点击

右击------------------context_click(rightclickelement)

双击------------------double_click(doubleclickelement)

单击------------------click(buttonelement)

按住左键------------click_and_hold(dlickholdelement)

1、context_click()

Python webdriver API(三)鼠标事件_第1张图片

ActionChains(driver)

driver:webdriver实例执行用户操作

ActionChains用户生成用户的行为:所有的对象都存储在actionchains对象。通过perform执行存储的行为。

perform()

执行所有存储在ActionChains对象中的行为。perform是ActionChains类提供的方法,一般与ActionChains()配合使用。

执行结果

Python webdriver API(三)鼠标事件_第2张图片

2、double_click()

Python webdriver API(三)鼠标事件_第3张图片

鼠标双击的应用场景:查看图片,双击选定文字等

程序运行截图

Python webdriver API(三)鼠标事件_第4张图片

3、click_and_hold()

Python webdriver API(三)鼠标事件_第5张图片

运行结果截图

Python webdriver API(三)鼠标事件_第6张图片

鼠标的移动

鼠标移动到距离当前元素(x,y)-----------------------------move_by_offset(xoffset,yoffset)

鼠标移动到某个元素--------------------------------------------move_to_element(movEelemt)

Python webdriver API(三)鼠标事件_第7张图片

效果如下:http://www.cnblogs.com/mengyu/p/6901489.html

关于(x,y)移动

移动前位置

Python webdriver API(三)鼠标事件_第8张图片

移动后位置

Python webdriver API(三)鼠标事件_第9张图片

相差(-311,-11)

鼠标拖曳

将某个元素拖到某个元素然后放开

drag_and_drop(source,target)

将某个元素拖到某个位置放开

drag_and_drop_by_offset(source,xoffset,yoffset)

Python webdriver API(三)鼠标事件_第10张图片

通过move_to_element()和click_and_hold()实现鼠标拖曳操作

Python webdriver API(三)鼠标事件_第11张图片

上图,移动这行代码修改为:ActionChains(driver).move_to_element(target).release().perform()

加了个release方法,讲鼠标释放,不然拖放动作完成后,鼠标还是按在元素上

发现了一个讲解超详细的博客http://www.cnblogs.com/mengyu/p/6901489.html

本文参考了《selenium自动化实战基于Python》以及http://www.cnblogs.com/mengyu/p/6901489.html

你可能感兴趣的:(Python webdriver API(三)鼠标事件)