#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 . Эта ошибка была только что исправлена.