firefox sdk,marionette:断言该项目存在于上下文菜单中

时间:2016-08-09 09:31:21

标签: selenium-webdriver contextmenu firefox-addon-sdk right-click firefox-marionette

我正在开发一个基本的firefox插件,我想测试一个上下文菜单中是否存在某个项目(在页面右键单击后显示)。

我已经看到我可以使用marionetteselenium-webdriver,但我无法找到点击页面上任意位置的方法并声明某个项目存在于上下文菜单。

我很难简单地点击右键(甚至没有谈论检查项目是否在上下文菜单中......)。

根据the documentation on ActionSequence我应该使用click并提供右键单击。我无法让它工作。这是我到目前为止所尝试的内容

const webdriver = require('selenium-webdriver');
const Capabilities = require('selenium-webdriver/lib/capabilities').Capabilities;
const input = require('selenium-webdriver/lib/input');

var capabilities = Capabilities.firefox();

capabilities.set('marionette', true);

var driver = new webdriver.Builder().withCapabilities(capabilities).build();

driver.get('http://localhost');

// Using a element for opt_elementOrButton
driver.actions().click(driver.findElement(webdriver.By.css('#changes')), input.Button.RIGHT).perform();

// Using right buttons
//driver.actions().click(input.Button.RIGHT, input.Button.RIGHT).perform();

// Using only one argument, as the second argument opt_button is "Ignored if a button is provided as the first argument"
//driver.actions().click(input.Button.RIGHT).perform();

//driver.quit();

1 个答案:

答案 0 :(得分:0)

您可以使用Actions.contextClick()执行右键单击,但无法访问上下文菜单以验证是否存在选项等。执行右键单击的示例代码如下所示。< / p>

WebElement e = driver.findElement(locator);
Actions action = new Actions(driver);
action.contextClick(e).build().perform();

参考 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/Actions.html#contextClick--