右键单击Selenium 2

Ang*_*ero 6 selenium web-testing right-click selenium-webdriver

我在Linux下使用Selenium 2(Web Driver)和FireFoxDriver.

我无法使用坐标在WebElement或其他可能的位置上执行右键单击.我也无法移动鼠标指针.

我试图使用"Actions"对象:

Actions actions = new Actions(ffDriver);
WebElement we = ffDriver.findElement(By.linkText("WhatEver"))
actions.contextClick(we).build().perform();
Run Code Online (Sandbox Code Playgroud)

我也尝试使用"鼠标"对象:

Mouse mouse = ((HasInputDevices)ffDriver).getMouse();
mouse.contextClick(we.getCoordinates());
Run Code Online (Sandbox Code Playgroud)

这些代码不会失败,但它们不会做任何事情.

但是,如果我在上面的两个示例中执行常规单击,它将按预期工作.

有人知道这有什么问题吗?

谢谢.

Ang*_*ero 2

我终于明白了这个问题。

在 Selenium 2 上,Web 元素上的“contextClick”函数不会模拟对该元素的右键单击,它只是激活放置在该元素的 HTML 代码中的“onContextMenu()”事件。

因此,如果您想访问此类上下文菜单,应该在 HTML 代码上进行处理。