いけむランド

はてダからやってきました

capybara & chrome でテスト時に画面外を click できなかった → スクロールして解決した

capybara と chromerspec を書いてみたりする日々です。

それはさておき、編集画面のテストにおいて、submit が押せなくなって CI がコケるようになることがあった。

Failure/Error: click_button('更新する')
     
     Selenium::WebDriver::Error::UnknownError:
       unknown error: Element is not clickable at point (60, 1307)
         (Session info: headless chrome=61.0.3163.79)
         (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.4.0-92-generic x86_64)

失敗時にスクリーンショットを撮るようにしてたため、それを確認すると (編集項目が増えた影響で) submit ボタンが画面外に押し出されていた。

画面外はクリックできないのか...というわけで調べてみると、どうもスクロールさせたらうまくいった。

    execute_script('window.scrollBy(0,10000)') # スクロールさせる
    click_button('更新する')

stackoverflow.com