Seleniumでアラートの操作をしていたら、以下のエラーに遭遇しました。

Selenium::WebDriver::Error::NoAlertPresentError: no alert open
  (Session info: chrome=71.0.3578.98)
  (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Linux 3.10.0-957.1.3.el7.x86_64 x86_64)

原因

原因はアラートが表示されていないタイミングで、アラートを処理するコードを書いていたからです。
selenium-alert

driver.switch_to.alert.accept

解決策

1.適切な箇所にアラートの処理を書いているか確認する
私は今回、アラートが出る前にコードを書いていただけの単純なミスでした。

2.適切な箇所にアラートの処理を書いているのに、処理されない場合
pythonであればalert_is_presentメソッドを使い、Alertが表示されるまで待機してみます。Rubyにはそのようなメソッドがないため、Sleepを使って対応する事になりそうです。