《selenium2 python 自动化测试实战》(4)——鼠标事件

鼠标事件包含在ActionChains类中,导入时只需要:

from selenium.webdriver.common.action_chains import ActionChains

导入类即可:

常用的方法有:

  • context_click()  ——右键单击

  • double_click()  ——双击

  • drag_and_drop(鼠标按下的元素,鼠标释放的元素)  ——拖动

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

  • click_and_hold()  ——按下鼠标左键在一个元素上

        需要注意的是,这些ActionChains类中对鼠标的操作,在执行的时候需要加perform才可以执行。

来一段代码,大家看一下效果:

# coding: utf-8
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains
options = webdriver.ChromeOptions() options.add_argument('disable-infobars') driver = webdriver.Chrome(chrome_options=options) # driver = webdriver.Chrome() driver.get("http://www.jrj.com.cn/") sleep(2) source = driver.find_element_by_xpath(".//*[@id='appherw']") ActionChains(driver).move_to_element(source).perform()

        额,不得不说,我踩到坑了……大家也发现了,我用的是chrome浏览器,没错,因为Firefox就是拖动不了……我百度了一大圈也没找到原因。只能和大家说一下我的chrome版本了;此外如果大家不像我那样写而是直接webdriver.Chrom(),运行是没问题的,但是chrome打开时会显示一行字——“chrome正受到自动测试软件的控制”,看着真的很不爽。用chrome的话就得安装chromedriver了……QQ群里我已经上传了,包括这个版本的chrome,此外除了chromdriver外建议大家顺便把geckodriver也一起放进去,放到python文件夹就可以。或者大家可以自己百度一下或者在任意技术群应该都有这些群文件可以下载的。我暂时还不想开放QQ群。

        上面的代码运行后会发现下面显示出了二维码——这正是鼠标移动上去时候的响应。

        再提醒大家一遍,鼠标的操作要有.perform()哦

        这些东西都是死的,大家只要能看明白,这次即使记不住,用的时候只需要找出来看看就能立刻写出来的。

        坑真多……,我是没想到Firefox不行,哈哈

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

原文地址:https://www.cnblogs.com/captainmeng/p/7860313.html