美文网首页
Python webdriver API(三)鼠标事件

Python webdriver API(三)鼠标事件

作者: qianyewhy | 来源:发表于2017-07-31 16:07 被阅读44次

    一、鼠标事件

    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()

    ActionChains(driver)

    driver:webdriver实例执行用户操作

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

    perform()

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

    执行结果

    2、double_click()

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

    程序运行截图

    3、click_and_hold()

    运行结果截图

    鼠标的移动

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

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

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

    关于(x,y)移动

    移动前位置

    移动后位置

    相差(-311,-11)

    鼠标拖曳

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

    drag_and_drop(source,target)

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

    drag_and_drop_by_offset(source,xoffset,yoffset)

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

    上图,移动这行代码修改为: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(三)鼠标事件

          本文链接:https://www.haomeiwen.com/subject/epsxlxtx.html