firefox sdk, марионетка: утверждение, что элемент присутствует в контекстном меню

Я разрабатываю базовый аддон Firefox, и я хотел бы проверить, присутствует ли определенный элемент в контекстном меню (отображается после щелчка правой кнопкой мыши в любом месте страницы).

Я видел, что могу использовать marionette и selenium-webdriver, но я не могу найти способ щелкнуть где-нибудь на странице и подтвердить, что данный элемент присутствует в контекстном меню.

Мне трудно просто щелкнуть правой кнопкой мыши (не говоря уже о проверке, находится ли элемент в контекстном меню...).

Согласно документации по 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)


Вы можете выполнить щелчок правой кнопкой мыши с помощью Actions.contextClick(), но вы не сможете получить доступ к контекстному меню, чтобы проверить наличие параметра и т. д. Ниже приведен пример кода для выполнения щелчка правой кнопкой мыши.

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--

person JeffC    schedule 09.08.2016
comment
Спасибо, но я использую node, и похоже, что щелчок правой кнопкой мыши (этот метод driver.actions().click(input.Button.RIGHT).perform();) не работает с firefox (исследование с chrome работает отлично)... Есть идеи, что может пойти не так? - person user7890; 09.08.2016