問題タブ [celerity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails Testing でレコードが欠落している
Rails の Javascript を Cucumber/celerity と factorygirl でテストしようとしています。スタック自体は機能しますが、データベースはおかしくなっています。
私は3001ポートでmongrelを実行しており(キュウリとテスト環境の両方で試しました)、セレリティ経由でキュウリからアクセスしています。
私のテストの1つは次のようになります。
- アイテムを作成
- 1 個のアイテムが存在します
- アイテムをうまく処理する
シンプルな webrat インターフェイスを使用すれば問題なく動作します。
しかし有名人の場合、データベースの何かが間違っています:
- #きゅうりでアイテムを作る
- #キュウリ に 1 アイテムあります
- 0 個のアイテムが #in celerity に存在します
- #キュウリ に 1 アイテムあります
- セレリティでは失敗しますが、キュウリでは機能します
Celerity のインスタンスがキュウリの db に保存されたものを認識しない理由はありますか?
PSはい、両方のインスタンスが同じデータベースで動作します....
tdd - セレンvsセレリティ?
Webサイトのテストに関しては、SeleniumはCelerityよりも優れているわけではありません。Firefox、Safari、Chrome、Internet Explorerなどの実際のブラウザーを使用して、当社のWebサイトがそれぞれと互換性があることを確認できます。
したがって、Celerity(Javaブラウザー)を使用する場合、すべてのテストに合格したとしても、それは私のWebサイトが人気のあるWebブラウザーと互換性がない可能性があることを意味しませんか?
遅いことは知っていますが、それを考慮に入れないと、Celerityはエラーが発生しやすくなりませんか?
jruby - Enterキーを押してセレリティ送信フォーム
セレリティを使用してフォームを送信しようとしています。このフォームには、ユーザーが入力ボタンを押すと呼び出されるリンクが生成されます。どうすればこれをトリガーできますか?
リンク/ボタンを見つけて .click() を押すことで送信できることを知っています。しかし、Enterキーを押して送信したいです。
セレリティフォームオブジェクトには次のものがあることに気付きました:
- (オブジェクト) submit フォームを送信します。
http://celerity.rubyforge.org/yard/Celerity/Form.html#submit-instance_method
しかし、私はそれにアクセスできないようです。前もって感謝します
ruby-on-rails - mysql を使用して Jruby on Rails アプリケーションで Cucumber/capybara/celerity との統合テストを実行する
ruby 1.9.1 で作業しているアプリケーションがあります。UI で JavaScript をテストしたいのですが、カピバラのデフォルトの Selenium ドライバーは、テストする必要があるイベントをサポートしていません。
明らかにcelertiy/culerityは現時点ではjrubyでしか動作しないため、テストのためにrvmを使用してアプリケーションをjrubyに切り替えるプロセスを進めています。バンドルをインストールして、アプリケーションが jruby で正しく動作しているように見えますが、「rake cucumber」を実行しようとすると、次の出力が得られます。
ある時点で、テスト データベースに sqlite を使用していましたが、その後変更されました。sqlite に戻そうとしましたが、それでも同じエラーが発生します。features/support/env.rb で database_cleaner を無効にすると、テストは実行されますが、不思議なことにすべて失敗します。
ここで何が起こっているか知っている人はいますか?
javascript - Celerityを使用してファイルをダウンロードする
JRubyでCelerityを使用して、特定のWebサイトからの.csvファイルのダウンロードを自動化しています。Webサイトの1つ(LinkShare)については、非常に近づいていますが、最後のステップを理解できません。
ウェブサイトはjavascriptと「hiddeniframe」メソッドを使用してファイルのダウンロードをプッシュします-通常のブラウジング中にダウンロードボタンをクリックすると、ダウンロードコンテンツを含む非表示のiframeを作成するjavascriptが呼び出され、ブラウザがそれを取得してユーザーにプロンプトを表示しますファイルを保存します。
明らかに、Celerityではまったく同じようには機能しません。リンクをクリックすると、jirbに新しいiframeが表示されますが、メソッドを呼び出すことができず、次のようなエラーが発生します。
Celerity / Htmlunit / Javascript / Jrubyの経験が豊富で、私を正しい方向に向けることができる人はいますか?ダウンロードコンテンツ(.csvファイル)を取得したいだけです。
あるいは、タスクに適した(ヘッドレス)ブラウザー自動化ツールが存在する場合は、それを知っている人はいますか?
ruby - 複数のブラウザー/Web ドライバーで同じキュウリのシナリオを実行する方法を見つけた人はいますか?
いくつかの Web 自動化テストにキュウリ + カピバラを使用しています。自分のタグ (シナリオの前に @all_browsers のようなもの) を接続して、設定した Web ドライバーのリスト (celerity、firefox の selenium、つまり chrome) に対して実行できるようにしたいと考えています。前に4つの異なるタグを付けてシナリオを4回書く必要はありません。私は、次の方法で登録した新しいドライバーでこれを行うことを検討しました。
そして、次のようにフォローアップします。
しかし、実際に機能する可能性のあるその Before メソッドに何を入れればよいかはよくわかりません。
具体的には、キュウリフックを使用してみました:
しかし、これは私が望んでいたように動作しません。同じドライバーを使用して、シナリオを 2 回実行します。
フックラインに沿って、キュウリのドキュメントから
You may also provide an AfterConfiguration hook that will be run after Cucumber has been configured. This hook will run only once; after support has been loaded but before features are loaded. You can use this hook to extend Cucumber, for example you could affect how features are loaded...
これがあります。
私はカスタムフォーマッタを調べましたが、実際には、出力をフォーマットするだけで、機能が実際にどのように実行されるかを指定しているようには見えません。
cucumber の機能ランナーをオーバーライドすることを検討しましたが、それは簡単でも友好的でもありません。
助けてください?誰?
include - インクルードを使用しますか?セレリティスクリーンスクレイピングスクリプトで
私はCelerityを使用してWebページをスクリーンスクレイピングし、特定のdivクラス内のすべてのテキスト要素をスクレイピングしようとしています。私が使用している次のコード行は、次のエラーをスローしています:間違った引数タイプ文字列(予期されるモジュール)(TypeError)
コード:puts browser.text if browser.frame(:id, 'bottomframe').div.class.include? 'ClassName'
誰かがこのエラーが何を意味するのか、もっと重要なことに私のコード行を修正する方法を教えてもらえますか?
screen-scraping - セレリティ-メインブラウザのdivテキストを更新するpopup_browser選択リストのヘルプ
選択リストと選択を実行するためのボタンで構成されるポップアップウィンドウを生成するリンクを含むページをスクリーンスクレイピングしています。目的は、メインページのリンクをクリックし、ポップアップウィンドウで選択を行い、リンクをクリックして選択を確認してから、メインWebページで新しい選択を表示することです。
セレリティで行っている手順と結果は次のとおりです。
最後の行を除いて、すべてが正常に機能しているようです。いくつかのデバッグを行い、選択が行われたことを確認しました。ポップアップページの[ChangeHoliday]ボタンをクリックした後、メインのWebページが更新されていないようです。
任意の考えや提案をいただければ幸いです。
よろしくお願いします。
ruby - celerity を使用して Linux (GUI なし) で saleforce.com にログインすると、JS と VB のエラーが発生する
背景: 以下のスクリプトは、私の salesforce.com アカウントにログインし、一連の「ダウンロード」リンクをクリックして、結果の .zip エクスポート ファイルをローカルに保存しようとします。
私はjrubyとcelerityを使用しています(これは、javascriptもサポートするヘッドレスブラウザであるhtmlunitのjrubyラッパーです)。
要件は、GUI/ブラウザをインストールせずにLINUXコマンド ラインから実行することです。ヘッドレス ブラウザは、javascript をサポートする必要もあります。そうしsalesforce.com
ないと、エラーが返され、ダウンロード リンクがレンダリングされません。(CURL を試しましたが、javascript をサポートしていないため失敗します)。(現在、 WINDOWSボックスのコマンド ラインから実行すると、スクリプトは正常に動作します)
質問:
Linux ボックスからこれを実行しようとすると、以下のエラーが表示され、スクリプトが Salesforce にログインしているように見えません。.js の警告は問題ないと思いますが (私はそう思います)、VBScript not supported in Window.execScript()
警告の意味がわかりませんか?:
ruby-on-rails-3 - CelerityはAcceptヘッダーを送信せず、Deviseはプレーンテキストで応答するため、CelerityはDeviseリダイレクトに従うことができません。
認証にDeviseのRails3gemを使用してRails3にアップグレードしたばかりのRailsアプリケーションがあります。一部のページをテストするために、CelerityバックエンドでCapybaraを使用しています。
ブラウザでアプリケーションにアクセスする場合、ユーザーが保護されたページ/コントローラにアクセスしようとすると、Deviseはログインページへのリダイレクトで応答します。
Rails 2.xバージョンのDeviseでは、これは、着信リクエストに空白のacceptヘッダーが含まれている場合でも機能していました*/*
。
Rails 3バージョンでは、acceptヘッダーが空白の場合、Deviseはプレーンテキスト文字列で応答します。
空白のacceptヘッダーが重要な理由は、CapybaraのCelerityバックエンドを使用して一部のページをテストしているためです。Celerityは空白のacceptヘッダーを送信するため、Deviseによってリダイレクトされません。この動作は、Devise forRails2.xからDeviseforRails3に変更されました。
CelerityはUnexpectedPageExceptionで失敗し、サーバーログはリクエストが*/*
acceptヘッダーとして行われたことを報告します。
まったく同じテストスイートでSelenium/Webdriverバックエンドを使用すると、問題は解決します。
これに取り組むには2つの方法があります。
- どういうわけか常にtext/htmlをacceptヘッダーとして想定し、それに応じて応答するようにDeviseに指示します。どうすればそれができますか?コントローラをオーバーライドする必要がありますか?
- 送信されたtext/htmlをacceptヘッダーとして「修正」します。これはどのように行うことができますか?
- これはHTMLUnitの問題/バグですか?
私には#2はこれを修正する「正しい」方法のように見えますが、Celerity/HTMLUnitのacceptヘッダーの欠如がバグなのか機能なのかはわかりません。考え?