結論
結論だけ知りたい人がいると思うので先に書きます。
コマンドラインパラメータを
```としている個所を
```-browserType="Chrome (headless)"
```に変更したら解決しました。
# はじめに
もともと社内サーバにKatalon実行環境を用意し、
VBAをつかって各クライアントPCからトリガーを掛け、
業務システムを自動化する、という運用をしてました。
クライアントPCからサーバへのプロセス生成にはWMICを使用。(WMICの詳細は[こちら](https://docs.microsoft.com/ja-jp/windows/win32/wmisdk/wmic))
VBAからの呼び出しは以下のようなコードで運用。
Dim wsh As New IWshRuntimeLibrary.WshShell
wsh.Run "cmd.exe /c WMIC /NODE:[IPアドレス] /user:[ユーザ名] /password:[パスワード] process call create ""[バッチファイルパス]"""
起動するバッチファイルの中身は以下。
"[katalon.exeのパス]" -noSplash -runMode=console -consoleLog -projectPath="[Katalonのプロジェクトパス]" -retry=0 -testSuitePath="[TestSuiteのパス]" -executionProfile="default" -browserType="Chrome"
こんな感じの環境を構築し、社内システムの自動運用を実施してました。
# ある日突然動かなくなる
いまだに原因不明なのですが、突然動かなくなりました。
ログを見るとどうやらブラウザがオープンできないようでした。
com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: ''
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:81)
at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:67)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:64)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$openBrowser.call(Unknown Source)
(以下略)
原因究明すべくサーバ上で直接起動すると普通に動く、、、ので、解析は困難を極めました。
いろいろ試した結果、WMICだけでなくタスクスケジューラ等で起動しても失敗するようだったので、
**そもそもウィンドウの作成に失敗しているのではないか?**という考えに至りました。
ウィンドウが作成できないのであれば、そもそもウィンドウを作成しないモードで起動すればよいのでは、と思い至り上記の対処を実施し無事解決しました。
そもそもがイリーガルな環境であり、ググっても全然類似の事象に陥ってる人がいなかったので同じような嵌り方してる人はあまりいないと思いますが、もしいたら役立ってくれればと思います。
# 残る謎
そもそも今まで動いていたのに突然動かなくなったのは謎です。
ChromeDriverを自動でアップデートするようにしているのでドライバが新しくなったことが原因かとは思っているのですが、そこが原因かはきっちり切り分けられてません。まあ動くようになったしいいか、の精神。
あと、事象の発生率が100%ではないことも謎でした。10回やると1回くらい成功してしまうせいで、誤った対処して解決してよかったよかったと安堵してたら再発する、みたいなことを何度か繰り返しました。。(序盤は発生率100%と思い込んでいたので嵌りました)