В моем 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 в 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)
Есть подсказка? Благодаря.