У меня есть следующий фрагмент в моем html, отображающий ссылку FB-Connect:
<fb:login-button id="mylogin" onlogin="try {
window.location.href = "http://localhost:3000/";
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('window.location.href = \"http://localhost:3000/\";'); throw e }"></fb:login-button>
Это отлично работает, если щелкнуть его вручную. Но при использовании Capybara + Selenium in Cucumber (тег @javascript) они, похоже, вообще не находят элемент, на который нужно щелкнуть. Я пробовал несколько комбинаций, пытаясь сопоставить его, например:
When I follow "mylogin" # or
When I press "mylogin"
И я получаю такие ответы:
no link with title, id or text 'mylogin' found (Capybara::ElementNotFound)
Я также попытался сопоставить внутренний текст «Войти» или «кнопка входа в систему», но безрезультатно. Пытался последовать совету на странице Огурец и капибара, нажав элемент без ссылки или кнопки тоже, но это не сработало.
Я использую гем Facebooker2 для создания ссылки:
#in my index.html.haml
= fb_connect_async_js
= fb_login_and_redirect('http://localhost:3000/', id: 'mylogin')
Версии гемов:
capybara (0.3.9) #(actually pulling it from github directly)
xpath (~> 0.1.2)
selenium-webdriver (>= 0.0.27)
cucumber (0.9.2)
Намек? Спасибо.