問題タブ [page-object-gem]
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 - 要素宣言で id に変数を使用する
私はスーパークラスDemoPage
といくつかのサブクラスSDemoPage
、EDemoPage
などを持っています。これらのページはすべて同じ要素を持ち、SDemoPage
見た目s-demo-test1
の id とそれに対応する id がEDemoPage
似ていますe-demo-test1
。私のDemoPage
クラスでは、すべての要素を宣言しました。サブクラス (呼び出し元のクラス) に基づいて ID を追加する方法が必要です。これは私が現在持っているものです。
しかし、これは機能しません。エラーが発生します。undefined method 'select_list' for #<SDemoPage>...
これは私の最初の試みではありませんでした。最初に attr_accessor :current_page_id を設定してから初期化しようとしましたが、それもうまくいきませんでした。次に、メタクラスを開いてそこにIDを設定しようとしました。最後に、クラス インスタンス変数をオンに設定して、SDemoPage
最終的にこのコードで動作させることができました。
しかし、これでは、他の呼び出しクラスに基づいて ID を設定することはできません。
ハッシュルックアップの使用など、他の試みのいくつかのコードも残しましたが、ページオブジェクトメソッドが変数/メソッド @current_class_id が存在しないことをすでに認識した後、これらはまだ初期化メソッドでインスタンス変数を設定しています
ここからどこへ行けばいいのかわからない。
編集:
だから私は最終的にそれを理解しましたが、これがこの問題を解決するための最良の方法であるかどうかはわかりません:
このようにすると何か問題がありますか?ここに示していない他のものが含まれているため、initialize メソッドにモンキー パッチを適用する必要があります。SDemoPage
それで、私はすでにそれを行う必要があるので、実際のではなくのコンテキストで要素を本質的に「作成」しない理由はありますDemoPage
か? それとも、ジャスティンの答えは完全かつ完全に物事を行うためのより良い方法ですか?
編集 2: 私はジャスティンの答えを受け入れました.
ruby - page-object gem + ruby を使用して、1 つのクラスに複数の page_url を持つ
機能テストの目的で、ほぼ同じ 6 つの製品ページがあります。それらの違いは、現時点では何もしていない説明と画像のみです。これは私のcurrent_setupです:ベースページ:product_page.rb
製品ページはすべて次のようになります: apple_page.rb
これらすべてを統合して、product_page.rb だけにする方法はありますか? テストで visit(ApplePage) を使用しているため、page_url が必要です。
ruby - キュウリのあるステップの価値を他のステップで利用できるようにする方法
私のシナリオでは、最初の 1 つまたは 2 つのステップで、他のステップで使用する必要があるデータを設定します。手順は次のようになります。
後の手順で価格、小計、合計などを確認できるように、それぞれの果物の種類と数量を保存する必要があります。シナリオが単純だったので、最初はインスタンス変数を使用しました。果物の種類と量は1つだけでした。ただし、シナリオにはより多くの果物の種類と量が含まれているため、これを保存して後のステップで使用できるようにする方法を理解する必要があります。シナリオごとに 1 つの果物と数量のみを使用したときの私の手順は次のとおりです。
これを変更して、引き続き動作できるようにする最善の方法は何ですか?
ruby - page_object gem の要素レベル待機のデフォルト タイムアウトを変更する
page-object gem で要素レベルの待機のデフォルト タイムアウトをグローバルに変更する方法はありますか? デフォルトの 5 秒を使用しますが、環境に応じて時々変更する必要があります。私たちのメインのテスト環境は複数のサーバーで実行されているため、応答時間は非常に高速です。ただし、1 台のサーバーのみで実行される 1 つまたは 2 つの環境があり、応答時間が少し遅くなります。この値は環境に応じて変更したいと考えています。これは理想的ではないことは承知していますが、調査するよう求められたものです。
ありがとう。
watir-webdriver - iFrame 内からの要素へのアクセス -watir-webdriver 0.6.6 では失敗 - 0.6.4 では問題なく動作
iFrame 内のドロップダウンで値を選択しようとしています。フレームはテーブル内にネストされています。HTML:
私のコード:
エラー:
Watir::Exception::UnknownFrameException: unable to locate frame using {:src=>/MyApplicantPortal\/Applicant\/\d+\/SelectOrderTemplate\?t=1/, :tag_name=>"frame"}
watir - send を使用して、ページ オブジェクトのオプションを動的に選択します。
ページ オブジェクトを動的に使用したい。このようなもの:
ただし、input_field の代わりに select_index オブジェクトを使用すると、次のようになります。
しかし、これは「undefined method `state_select_element.option(index, 1).select'」というエラーを出しています
これはどのように行うことができますか?