はじめに
CodeceptJSのclearFieldを使用した際に、入力欄の値が正常にクリアされない現象が発生しました。
備忘録として現象と解決策を残しておきます。
同様の現象に遭遇した場合は、以下の解決策を参考にしてください。
動作環境
- CodeceptJS 3.3.0
現象と解決策
CodeceptJSのclearFieldを利用して入力欄をクリアする操作を行いましたが、値がクリアされない現象が発生しました。
こちらの記事によると、CodeceptJS側の不具合のようです。
解決策としては、clearFieldを利用せずに独自実装で入力欄の値をクリアする方法が提案されています。
実装方法は以下の通りです。
I.fillField("#field", " "); // "#field"には入力欄のロケーターを指定する
I.pressKey(['Shift', 'Home']);
I.pressKey("Backspace");
この方法の手順は以下の通りです。
- 対象の入力欄に1文字値(半角スペース)を入力
- 行の先頭まで選択
- バックスペースを押下
※手順1で入力欄に1文字(スペース)だけ入力するため、I.pressKey(['Shift', 'Home']);
の部分はI.click("#field");
に置き換えても問題なく動作します。
上記のステップを実行するカスタムステップを作成してclearFieldの代わりに使用できます。
おわりに
この現象はCodeceptJSバージョン3.3.0で発生しましたが、最新バージョンでは解消されている可能性もあります。
もし最新バージョンにアップデートしても同じ現象が発生する場合は、今回の解決策を実行してみてください。
参考記事