У меня есть кнопка на странице, которая появляется только при наведении курсора на определенный элемент. Но я не могу понять, как это эмулировать, а затем щелкнуть ссылку, чтобы протестировать ее на огурце с помощью Capybara и Selenium.
наведите мышь на капибару
Ответы (2)
Вы можете использовать для этого настраиваемый шаг, например:
When /^I click "([^"]*)" inside element "([^"]*)"$/ do |button, element_name|
Внутри вы пишете что-то вроде:
begin
evaluate_script("$('#{element_name}').trigger('mouseover')")
rescue Capybara::NotSupportedByDriverError
end
И затем вы нажимаете ту кнопку, которую хотите :)
person
socjopata
schedule
15.08.2011
к сожалению, это НЕ работает для раскрывающихся списков на основе css: hover... нам нужен какой-то способ явного перемещения фальшивой мыши для определенных вещей...
- person fringd; 12.07.2012
Имхо должно работать. Попробуйте выразиться более явно, например: Кроме того, afaik selenium поддерживает перемещение курсора по осям x, y, но это не весело;)
- person socjopata; 12.07.2012
socjopata, какой драйвер капибары вы используете, и вы УВЕРЕНЫ, что используете css :hover, а не javascript или jquery .hover(...)?
- person fringd; 12.07.2012
Я нашел способ имитировать «зависание мыши», используя Capybara + драйвер Selenium. Попробуйте этот код:
module Capybara
module Node
class Element
def hover
@session.driver.browser.action.move_to(self.native).perform
end
end
end
end
person
Alex D
schedule
24.12.2012
У меня работает с драйверами Selenium Chrome и Firefox. Возможно, вам придется подождать доли секунды после наведения, прежде чем он ответит. Если это все еще не работает, используйте гем
debugger
, вставьте вызов debugger
в один из ваших тестов Capybara, а затем поэкспериментируйте с вводом команд Selenium, наблюдая за тем, что происходит в окне браузера Chrome/FF.
- person Alex D; 20.02.2013