51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2245|回复: 2
打印 上一主题 下一主题

selenium python 模拟鼠标事件与实际鼠标事件冲突问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-2-25 14:47:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神好,
小弟碰到一个selenium python 模拟鼠标事件与实际鼠标事件冲突问题,请教一下
问题描述:
   在主页面想通过ActionChains模拟鼠标悬浮事件,然后在悬浮下拉菜单中定位到一个菜单执行点击事件,但在主页主体内容中有很多小卡片,每个卡片都会接受鼠标悬浮事件
  此时问题来了,如果在执行用例的时候鼠标放在某个卡片上时,模拟的那一系列鼠标中最后的点击操作没有被执行,也就是没有进入到对应的菜单页面,但是用例执行完了,也并没有报错
  当鼠标没有放在卡片上时,用例可以正常被执行,也能到达对应的菜单页面

这个问题有什么有效的解决方法么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-3-3 10:21
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2016-2-25 18:07:32 | 只看该作者
    贴代码
    ActionChains模拟悬浮之前,会先move to 到对应的元素。

    也可以在模拟悬浮之前,加一步:判断下当前元素是不是鼠标focus的元素
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2016-2-25 19:31:24 | 只看该作者
    1. config = driver.find_element_by_class_name("g-banner-left-text")
    2. ActionChains(driver).move_to_element(config).perform()
    3. time.sleep(2)
    4. personConfig = driver.find_element_by_xpath("//div[@class='g-banner-left']/div[2]/div[1]/a[2]")
    5. personConfig.click()
    复制代码

    代码应该没问题,主要就是模拟的鼠标事件,与实际鼠标放置位置的控件元素正好也有focus的话就会冲突,导致点击personConfig 后没有效果
    如果实际鼠标是在窗口之外的话,就没问题了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-6 13:30 , Processed in 0.068645 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表