LoginSignup
1
0

More than 5 years have passed since last update.

ブラウザ(chrome, firefox等)のネイティブダイアログを閉じる方法

Last updated at Posted at 2018-07-07

問題

Capybara(selenium)などでテストをしている時に、ファイルアップロードなどでブラウザネイティブのダイアログが開く時がある。

da97e9547eced288b1211dcc2d5fa18b-2.png

seleniumでは調べてみた限りJavascriptで表示されるようなalert confirm ダイアログの操作はできるが、ブラウザネイティブで表示されるダイアログはどうにも出来ない様子

解決方法

ダイアログが開いた状態でブラウザ自体にescapeキーが送れれば良いのでOSXの場合はAppleScriptを使う。

dialog_escape.script
# activate application "Google Chrome" chromeの場合はこっち
activate application "Firefox"
tell application "System Events"
  key code 53
end tell

特定のアプリケーションをフォーカスして、escapeキーを送っているだけ

上記のファイルを保存してrubyなどから以下のように実行

system("osascript /path/to/dialog_escape.script")
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0