Мы нашли более простой способ симуляции щелчка правой кнопкой мыши (протестировано в IE8). Используйте двойной щелчок или два одиночных щелчка, затем щелкните правой кнопкой мыши, используя Shift-F10. Я не знаю точно, почему это работает, но это работает. В приведенном ниже примере кода мы используем метод Selenium, чтобы дважды щелкнуть мышью, а затем с помощью драйвера IE найти WebElement и отправить последовательность клавиш Shift-F10, которая имитирует щелчок правой кнопкой мыши. Мы используем это для тестирования веб-приложений на основе GWT. Единственное место, где это не сработало, было в древовидном элементе управления, где было установлено контекстное меню для отображения в координатах мыши. Часто координаты мыши были отрицательными, поэтому щелчок правой кнопкой мыши по пункту меню не приводил к отображению дочерних пунктов меню. Чтобы справиться с этим случаем, мы добавили немного кода в элемент управления, чтобы, если координаты мыши были отрицательными, контекстное меню отображалось с 0,0.
selenium.click("//td[@role='menuitem' and contains(text(), 'Add')]");
selenium.click("//td[@role='menuitem' and contains(text(), 'Add')]");
new InternetExplorerDriver().findElement(By.xpath("//td[@role='menuitem' and contains(text(), 'Add')]")).sendKeys(Keys.SHIFT, Keys.F10);