FB-Connect リンクを表示する HTML に次のスニペットがあります。
<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>
手動でクリックするとうまくいきます。しかし、Cucumber (@javascript タグ) で Capybara+Selenium を使用すると、クリックする要素がまったく見つからないようです。次のように、いくつかの組み合わせを試してみました。
When I follow "mylogin" # or
When I press "mylogin"
そして、次のような答えが得られます。
no link with title, id or text 'mylogin' found (Capybara::ElementNotFound)
また、内部テキスト「Login」または「login-button」を一致させてみましたが、役に立ちませんでした。Cucumber と Capybaraのアドバイスに従って、リンク以外の要素やボタン要素もクリックしようとしましたが、うまくいきませんでした。
Facebooker2 gem を使用してリンクを生成しています。
#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)
ヒントはありますか?ありがとう。