kellyxie 发表于 2009-8-14 11:23:47

selenium 之mouseDownRightAt,mouseUpRightAt使用问题

网站有个鼠标右键弹出菜单,点击弹出菜单,执行相应操作,使用 mouseDownRightAt,mouseUpRightAt,执行成功后,没见菜单弹出来,这时用click 弹出菜单xpath,系统提示找不到.具体代码如下:
mouseDownRightAt //div[@id='mail_main']/div/div/p/
mouseUpRightAt //div[@id='mail_main']/div/div/p/
click //li[@onclick="JS.writeMail({type:'writemail',init:true})"]

-后来查明:已屏蔽IE右键菜单,自定义的右键菜单。但是该如何用selenium 触发该功能。
若用fireEvent//div[@id='mail_main']/div/div/p/
click //li[@onclick="JS.writeMail({type:'writemail',init:true})"]
还是没发现自定义菜单弹出,click 菜单按钮,提示not found

[ 本帖最后由 kellyxie 于 2009-8-14 15:29 编辑 ]

park_p 发表于 2009-8-17 12:12:41

关于鼠标操作,没试过,不过selenium的机制应该是触发你选择元素上的鼠标点击事件吧,如果这个事件里没触发菜单估计这样操作就不行,你可以试试别的命令看看,比如contextMenu或contextMenuAt什么的,看看行不。你可以搜下网上selenium的api文档,看看有哪些api提供可用。还有,如果这个菜单是系统或IE通过别的方式弹出的,那么我想selenium可能操作不了它,一般来说js不能做的操作selenium就应该操作不了。

park_p 发表于 2009-8-17 12:15:56

你可以问问开发,菜单是这么屏蔽的,怎么触发自定义菜单的,等等,可能selenium的代码就可以实现操作了。

kellyxie 发表于 2009-8-20 12:15:56

你好,他们用如下方式解决:

Window.document.oncontextmenu=docBodycontextmenu;

function docBodycontextmenu(event)
{
...       
}

park_p 发表于 2009-8-20 15:28:29

Window.document.oncontextmenu=docBodycontextmenu;

function docBodycontextmenu(event)
{
...      
}

看上去“oncontextmenu”好像是个菜单事件,你可以试试RC里这个contextMenu命令api有没有作用

kellyxie 发表于 2009-9-7 18:08:37

直接使用contextMenuAt(),再用click可以以实现

橙色咖啡 发表于 2010-3-23 15:02:25

受教了
页: [1]
查看完整版本: selenium 之mouseDownRightAt,mouseUpRightAt使用问题