2017-12-18 9 views
0

最近MacをSierraからHigh Sierraにアップグレードしました。私はその上で動作するレールのアプリはキュウリのテストは今奇妙なエラーで失敗しています予想Railsアプリケーション:@javascript Selenium Cucumber/Capybaraテストがオブジェクトで失敗する未定義

[オブジェクト未定義]文字列であることを未定義(セレン:: webdriverを::エラー:: InvalidArgumentError)

私が試してみましたこれらのテストをFirefox 56.0.2(アップグレード前は数週間働いていました)と今は57.0.1で実行しています。

私はこのエラーがウェブ上のいくつかの場所で言及されているのを見たことがありますが、geckodriverの古いバージョンの場合にのみ明らかです。私はバージョン0.19.1を実行しています。私はできるだけ早く私はできることを確認している古いgeckodriverのバージョンが周りに座っている。

capybaraの "fill_in"コマンドを実行しようとすると、エラーが発生します。私はもともとselenium_webdriver 3.4.4を実行していましたが、3.6.0と3.8.0(最新版)も試しました。

混乱していることは、私のofficematesもHigh Sierraにアップグレードし、テストしたのと同じFirefoxバージョンを実行して、セレン3.4.4を使用し、同じgeckodriverバージョンを使用していることです。彼らのテストは合格する。だから私は誰もが私のマシンと私のofficemates間で異なる可能性があるこのプロセスに関与する他の設定/アプリケーションが何を知っているのだろうかと思っています。どのような入力をありがとう。

+0

私は、行動の変化なしにプロジェクトでカピバラの宝石の更新をテストしました。私は、rvm用のRubyバージョン(2.1.10)をアンインストールして再インストールしました。私はすべてのプロジェクトの2.1.10インストールにチェーンされたすべての宝石セットを再構築しました。最後に、さまざまなバージョンのcapybaraを使用するすべてのWebアプリケーションでテストを実行しました。すべてのアプリは、上記のエラーメッセージと同じ方法で失敗します。 – Barry

答えて

0

問題が見つかりました。/usr/local/binにあるgeckodriver.savという実行可能ファイルがありました。それはgeckodriverの古いバージョンでした。/usr/local/binには私の自家製のセラーに最新のgeckodriverへのリンクがあります。セレンのソースコードを見ると、起動するファイルとして "geckodriver *"が選択されます。どうやら、この.savファイルがリンクより優先されていたようです(注文ファイルに基づいていたかもしれません)。 .savファイルを/ usr/local/binから移動したところ、テストはすべて終了しました。

+0

セレコの運転手がgeckodriver *を入力として受け入れるという行動を報告して以来、この行動を修正しています。 https://github.com/SeleniumHQ/selenium/issues/5240を参照してください。 – Barry

関連する問題