webdriver :: contextClick(WebElement) не открывает контекстное меню

#webdriver #selenium-webdriver

#webdriver #selenium-webdriver

Вопрос:

Я пытался открыть контекстное меню для моего автоматического теста, используя selenium 2. То, что я пробовал, это:-

 WebDriver driver = new FirefoxDriver();
Actions actions = new Actions(driver);
//location is = "largeImageF-img"
WebElement webElement = driver.findElement(By.id(location));
actions.contextClick(webElement);
  

Он не открывает контекстное меню.

Я пытался использовать

 selenium.contextMenu(xpath);
//selenium was instantiated using WebDriverBackedSelenium
  

Любые рекомендации будут оценены. Спасибо

Ответ №1:

Action Класс реализует шаблон builder. Таким образом, вы можете связать несколько вызовов для создания одной последовательности действий. Чтобы выполнить их, вы должны вызвать perform() в конце:

 actions.contextClick(webElement).perform();
  

Ваш код не выполняет действие.

Комментарии:

1. Я хотел бы поблагодарить вас за ваш ответ. Я понимаю вашу точку зрения, что мне нужно использовать perform() . Но не уверен, почему действие не выполняется. Я использовал следующие шаги: WebDriver driver = new FirefoxDriver(); driver.navigate().to(«http://….»); Действия действия = новые действия(драйвер); WebElement WebElement = driver.findElement(By.id (местоположение)); действия.Контекстный щелчок(WebElement).method(); Я что-то упускаю. Спасибо,

2. @user978301: Извините, ваш комментарий не имеет смысла. Нет метода Actions.method() . Кроме того, пожалуйста, отредактируйте свой вопрос, если вам нужно его изменить / исправить. Таким образом, все видят ваше исправление.

3. @user978301: это должно быть actions.contextClick(WebElement).perform() вместо actions.contextClick(WebElement).method()

Ответ №2:

Я не проверял WebDriverBackedSelenium, но я уверен, что он работает для Firefox и MSIE начиная с версии 2.8, проверьте свою версию. Что касается изменений в прошлых выпусках Seleinum 2, вы можете получить более подробную информацию в блоге Selenium. Или посмотрите на это «извлечение» : http://rostislav-matl.blogspot.com/2011/10/remarkable-changes-in-past-versions.html — на всякий случай есть несколько примеров того, как его правильно использовать.

Ответ №3:

Я также столкнулся с этой проблемой, и оказалось, что в моем случае это была ошибка в Selenium, когда contextClick не работал должным образом внутри iFrame. Для получения более подробной информации: https://code.google.com/p/selenium/issues/detail?id=2950 . Эта ошибка была только что исправлена.