Capybara + Selenium / Webkit: выбор * в пределах * div (rails / rspec) - PullRequest
1 голос
/ 27 января 2012

Добрый вечер,

Я пытаюсь настроить спецификацию запроса с помощью RSpec / Capybara для страницы, содержащей график Флота. У меня есть страница, настроенная так, что пользователь должен нажать на отмеченный элемент на графике (отметка / точка данных), чтобы продолжить. Очевидно, что график генерируется с помощью Javascript (flot).

Есть ли способ заставить капибару / селен кликать по определенной позиции х / у с помощью диаграммы div? Я могу измерить его в среде разработки таким образом, чтобы он достиг точки назначения в тесте.

Я нашел способы сгенерировать это событие клика с помощью JavaScript:

$(document.elementFromPoint(x, y)).click();

Но я не думаю, что есть способ заставить это работать в RSpec. Я ищу что-то еще, как:

find(".overlay").click(top:10px; left:50px;) # click offset from the top and left of graph div
response.body.should have_selector(# stuff that should show up on the page)

Не уверен, имеет ли это какое-то значение, но сейчас я предпочитаю Selenium, а не webkit, чтобы я мог видеть, что он делает ... переключится на webkit после запуска тестов.

1 Ответ

1 голос
/ 29 января 2012

Капибара должна позволять вам выполнять Javascript из примера, когда драйвер его поддерживает, например:

page.execute_script('$(document.elementFromPoint(10, 50)).click();')

...