2017-03-29 8 views
0

"bot"と "user"ユーザーエージェントの両方でキュウリの動作をテストする必要があります。一部のコントローラでキュウリ試験 - ブラウザはボットユーザーエージェントを検出します

、私はボットガード句

if browser.bot? 
    redirect_to(canonical_path, status: :moved_permanently) 
else 
    do_some_tracking 
    redirect_somewhere 
end 

を持っている私は、ボットやユーザーがページを訪問

Feature: Visit the special page 

    Scenario: A bot visits the special page 
    When I visit the special page 
    I should see the home page 

    Scenario: A user visits the special page not signed in 
    Given I am not logged-in 
    When I visit the special page 
    I should see "Who are you ?" 

    Scenario: A user visits the special page signed in 
    Given I am logged-in as "michael" 
    When I visit the special page 
    I should see "Achievement earned : explorer" 

であるかどうかに応じて変化することができる機能を備えたキュウリのテストを持っていますシナリオごとにユーザーエージェントを変更する方法はありますか?

I env.rbにタグやBefore/Afterブロックを使用したもののしかし、私は実際に電流ドライバのユーザーエージェント文字列を変更する(そしてその後正常に戻って、それを元に戻す)するかどうかはわかりません

そうでない場合デフォルトポルターガイストドライバのユーザエージェントは、常に(それがあなたの質問に言及していますので)あなたがあなたのためにユーザーエージェントを無効にすることができポルターガイストを使用していると仮定すると、browser宝石

答えて

1

のためのボットとして認識されている「PhantomJS」でありますタグベースのBefoに 'User-Agent'ヘッダーを設定することで現在のテスト再ブロック(次のテストで自動的にリセットされます)。

page.driver.add_header("User-Agent", "whatever you want") 

これは、ポルターガイストREADMEに記載されています - https://github.com/teampoltergeist/poltergeist#manipulating-request-headers

あなたはポルターガイストを使用していない他のドライバーもヘッダを設定する方法を持って、そして設定するための均一なAPIを提供しcapybara-user_agent宝石がある場合ユーザエージェント。しかし、宝石はしばらく更新されていないので、それはまだ動作するかどうかわかりません。

+0

宝石を参考にしてくれてありがとう!また、前のタグで単に 'page'を呼び出すことが可能かどうか確信がありませんでしたが、うまく動作します。 –

+0

まあ、あなたが言ったように、宝石はかなり古くて、セレンとはもう働かないようです... –

関連する問題