問題タブ [sahi]

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.

0 投票する
1 に答える
410 参照

symfony - サヒ走れない

重複の可能性:
sahiとsymfony2

symfony2でbehat、mink、sahiをテストしたいと思います。

私のファイルconfig_test.ymlには

私が使用するときの私のtest.featureで

結果は良好です:

しかし、私が追加すると、@mink:sahi私は得る

何か考えはありますか?

0 投票する
1 に答える
615 参照

internet-explorer-9 - Sahi 自動テスト テキスト フィールドが空白で、ファイルのアップロードが機能しない

テスト自動化のためにSahiを試しています。Orbeon フォームで作成されたフォームを完成させようとしています。Windows 7 で IE9 を使用しています。

基本的に、フォームに入力します (送信に必要なさまざまな段階へのタブとリンクがあります)。ファイルの添付も含まれます。

Firefox と Chrome で行われたテストは正常に動作しますが、ファイルがアップロードされることを除いて、エラーは発生しませんが、ファイルは実際にはアップロードされません。

IE9 で同じテストを実行すると、スクリプト エラーが発生します。そこで、IE9 を使用して特定のテストを作成しました。これはエラーを生成せずに実行されますが、調べるとすべてのテキスト入力フィールドとドロップダウン フィールドが空白になります。また、ファイルはアップロードされません。

何が問題になる可能性があるかについて何か考えはありますか?

前もって感謝します...

0 投票する
2 に答える
1324 参照

browser - Sahiのプロキシが正しく機能しなくなった

Sahiを使用したWebサイトの一連のテストがあります。これらのテストは自動化されており、Jenkinsビルドシステムにフィードされます。

テストは、他の用途に使用されない専用PCで実行されます。Sahiに加えてすべてのブラウザがインストールされています。Jenkinsサーバーは、テストPCにリモート呼び出しを行ってテストを実行します。すべてのテストの実行に時間がかかるため、この機能テストスイートは一晩実行されます。

数ヶ月の間、このシステムはすべて美しく機能していました。しかし、数週間前のある日突然、私はオフィスに来て、すべてのテストが失敗したことに気づきました。それ以来、彼らは働いていません。私の知る限り、重要な変更はありません(ブラウザーのバージョンは明らかに最新の状態に保たれていますが、障害が更新と同時発生したとは思いません。Sahi自体は昨年から更新されていません)。

私は何が起こっているのかを知るためにいくつかの仕事をしました:

Sahiはブラウザ制御の魔法の一部としてプロキシを使用しており、このプロキシが問題の原因であると私は信じています。しかし、私はどのように、またはなぜかを理解することはできません。

Sahiの制御下にあるブラウザがテスト対象のページをロードすると、どのHTTPリクエストも成功していないようです。生のページコンテンツは表示されますが(キャッシュされているためだと思います)、スタイル、グラフィック、スクリプトは表示されません(ブラウザーによって既にキャッシュされているものを除く)。さらに、Sahiスクリプトはボタンをクリックしてテストを続行しようとしますが、ブラウザーは何もロードできません。Sahiは少し待ちますが、最終的にスクリプトがタイムアウトし、テストが失敗します。

Sahiを手動で実行すると、影響を受けるPCでこれを複製できます。これは、どのサイトでも、すべてのブラウザで発生します。ただし、関連するすべてのソフトウェアの同じバージョンがインストールされている自分のデスクトップPCでは発生しません。そしてもちろん、過去にはテストボックスで問題なく動作しました。

Sahiとブラウザをアンインストールして、最初から再インストールしてみました。これは何の違いもありません。(アンインストールしても実際にはすべてが削除されないことが多いので、ここでできることは他にもあるのではないでしょうか?)

他に何を試すべきかわからないので、誰かがここで私を助けてくれることを本当に望んでいます。

よろしくお願いします。

0 投票する
0 に答える
1919 参照

selenium - Selenium webdriver と Sahi

この質問については、いくつかのブログとスタックオーバーフローに関する以前の投稿を参照しました..しかし、これらの比較は、以前のバージョンのセレン(1.0)に関連していました..現在のバージョンのセレン(webdriver)は非常にリッチで、クロスブラウザなどもサポートしています機能(Watir-WebDriverでさえセレンを使用しています)..現在のバージョンのセレンWebドライバーとsahiのいくつかの基本的な比較分析を提供できますか..任意の提案をいただければ幸いです..ありがとう..

0 投票する
1 に答える
1085 参照

phantomjs - サイトの機能テスト

私はMink / Sahiと協力して、自分のサイトの機能テスト スイートを作成しています。

私は Firefox と Chrome で一連のテストを行っており、満足しています。それらは私たちの Jenkins ボックスで毎晩実行されており、うまく機能しています。

ただし、Jenkins ボックスはサーバーであり、Chrome/Firefox は GUI アプリであるため、デスクトップ PC でテストを実行する必要がありました。これは、毎晩スイッチを入れたままにしなければならないことを意味するため、環境上およびコスト上の理由から悪いことです。さらに、電源、ネットワーク、またはソフトウェアに問題がある場合、テストは失敗します。

そこで、Jenkins ボックス自体でヘッドレス ブラウザを使用するようにテストを切り替えることについてアドバイスをお願いします。

私には、Goutte、Zombie、Phantom の 3 つのオプションがあるようです (もちろん、他の人が推奨できる場合を除きます)。以下は、これまでの私の進捗状況をまとめたものです。

  • Goutte : これは PHP 駆動型であるため、Mink 内で実行され、Sahi の必要性がなくなります。Jenkins ボックスにはリソースが限られているため、これは素晴らしいことのように思えます。インストールして実行する必要が少ないほど良いのです。ただし、テストの一部として JS コードを実行する必要があり、Goutte ではこれができないことを理解しています。それはそれを除外しますか?

  • Zombie : Node.js で実行されます。残念ながら、私はこれをまったく機能させることができませんでした。Node、NPM、Zombie をインストールしましたが、Mink に認識させることができません。これを実行する方法について、Mink サイトよりも明確な指示を誰か教えてくれませんか?

  • Phantom : 残念ながら、Mink には Phantom 用のドライバーがないため、Sahi 経由で実行する必要があります。前述したように、Jenkins サーバーに Sahi をインストールする必要はありません。特にサーバーとして継続的に実行する必要があるためです。しかし、これまでに成功したのはこれだけです。Sahi の下で実行すると、テストを正常に実行できます (一貫性があるわけではありませんが、これは心配です。約 3 回に 1 回、ランダムにタイムアウトするようです)。Sahi (またはその他の中間層サーバー) をインストールせずにこれを実行する方法を提案できる人はいますか? または、Sahi が必要な場合は、Jenkins を構成して、テスト スイートの最初に Sahi を開始し、最後に停止する方法を誰か教えてもらえますか?

進め方についてアドバイスをいただければ幸いです。何らかの理由で、これらのオプションのいずれも明確な勝利を収めているようには見えません。しかし、機能テストは重要なので、これは解決された問題でなければなりません。私に最適なソリューションは何ですか?

(Zombie や Phantom と直接対話するために、Javascript でスクリプトを書き直すオプションがあることも知っています。失敗した場合でも、何が起こっているかを確認するために Firefox でそれらが実行されているのを確認する必要があるため、これは避けたいと思います。間違っているので、Mink のようなクロスブラウザー インターフェイスが理想的です。言うまでもなく、私は既にすべてのテストを PHP で記述しています!)

アドバイスをありがとう。:)

0 投票する
1 に答える
431 参照

webautomation - Sahi Scripts が Internet Explorer と Opera で正しく動作しない

Firefox を使用していくつかの自動化スクリプトを生成します。今、Firefox でスクリプトを再生します。すべてが順調に進んでいますが、Opera には問題があります。また、Internet Explorer と同じ..

Internet Explorer では、コードのこの部分は通常、スクリプトの実行後に Failed として表示されます。

オペラでも、

_sahi._popup("csi")._sahi._click(_sahi._link("Bilgi Güncelleme")); //This part is failed. 文字セットと関連?

最後に、この失敗した部分は Firefox で問題なく動作しています。これらの問題を解決するにはどうすればよいですか。

ありがとうございます。

0 投票する
1 に答える
527 参照

testing - Sahi で Junit レポートを生成できません

3 つのテスト ケース (.xls ファイル) を含むテスト スイートがあります。Ant スクリプトを使用してテスト スイートを実行していますが、junit レポートは TEST-excelfw_firefox.xml(/temp/junit/..) ですべての xml を生成します。最終的に、3 つではなく 1 つの .xml ファイルしか取得できませんでした。Sahi で ant を使用して異なる名前の .xml を生成する方法は?

0 投票する
2 に答える
507 参照

ui-automation - Sahiでフォントノードを選択する方法は?

私はSahiを使用してIE8で自分のアクションを記録しています。私のページには次のマークアップが含まれています。

上で定義したボタンをクリックすると、Sahiは次のように記録します。

しかし、これを再生してもボタンがクリックされません。でも、

trueを返します。

concat.jsファイルに次の行を追加して、フォントノードを検出できるようにしました。

しかし、これは何の効果もなかったようです(私はSahiを再起動しました)。テスト対象のページを制御できず、tdノードとフォントノードのどちらが選択されているのかわかりません。

フォントノードのonclickイベントを発生させるにはどうすればよいですか?

編集:sahi / config/normal_functions.txtに_fontを追加しました

IEツールを使用してページを手動で微調整し、tdでもonclickを実行すると、同じ手順が記録されますが、再生されるようになります。

残念ながら、ページに変更を加えることができず、フォントノードに存在するonclickイベントを再生する必要があります。

両方

与える

[例外][オブジェクトエラー]

0 投票する
1 に答える
3576 参照

behat - Behat 2.4 のアップグレードの問題、または「behat」の下の認識されないオプション「extensions」 - behat.yml を介して sahi 拡張機能を有効にしようとするとエラーが発生する

この Behat のことはかなり初めてで、回避できないように見える障害に遭遇しました。私はドキュメントをじっと見つめ、自分の仕事のようにグーグルで検索し、非常階段からコンピューターを放り出さないように最善を尽くしてきました。

私はかなり複雑なプロジェクトに取り組んでいますが、それを設定したのは私ではありません。だから私はいくつかの分野で少し迷っています。

現在、私は Sahi ドライバーを使用しようとしています。これは、テストする必要があるいくつかの動的フォームに対してセレンがそれをカットしていないためです。デフォルトの Selenium ドライバーでテストを正常に実行できますが、フォーム入力時に JavaScript イベントを適切にトリガーしないため、テストは失敗します。具体的には、そのリンクで説明されている回避策で動作しますが、ブラウザーにフォーカスがある場合に限ります。つまり、テストがソースで実行された場合、または xvfb を使用してジェンキンを介して実行された場合に失敗します。

これをすべて説明しているのは、これがより大きな問題であり、Sahi ドライバーを使用して対処しようとしているからです。これにより、次のことがわかります。

これは、ドキュメントに記載されている方法で bahat.yml の特定のプロファイルの Sahi ドライバーを有効にしようとしたときに得られるものです。

デフォルトのプロファイルと、現在 behat.yml で使用しているプロファイルを次に示します (公開用に少し変更しています)。

Fwiw、テストは vm 上にあり、そこに -X を ssh してから、次を使用してテストを実行します。

デフォルトの Selenium ドライバーと @javascript タグを使用している場合、ブラウザーがポップアップし、テストが実行されて合格します (もちろん、ブラウザーにフォーカスを置いていると仮定します)。

composer を使用して追加のドライバーをインストールしました。

use Behat\Mink\Driver\SahiDriver;MinkContext.php、EnvironmentContext.php、FeatureContext.php に追加しましたが、おそらくやり過ぎか、不要であると推測しています。とはいえ、今のところ特に変化はないようです。それがあってもなくても同じエラーが発生します。

sahi.phpfeatures/bootstrap/mink にある a も追加しました。

exensionsfeatures/bootstrap という名前のディレクトリを追加すると、何らかの理由で役立つかもしれないと思いました。と呼ばれるファイルさえそこに貼り付けましたsahi.php。それはあまり役に立ちませんでした。

それがすべてをカバーしていると思います。事前に助けてくれてありがとう。これが他の場所でカバーされている場合は、そこに案内してください.

アップデート:

古いバージョンの behat、mink、gherkin をアンインストールし、このhttps://lestbddphp.wordpress.com/2012/08/31/behatcomposer/に従って 2.4 などをインストールしました。

ドキュメントの「Behat 2.3 から 2.4 への移行」を進めてきました。(申し訳ありませんが、これ以上リンクを投稿することはできませんが、Behat の公式ドキュメントに記載されています。)

私のcomposer.json

behat.yml指示に従って、ファイルをプロジェクトのルートに移動しました。defaultプロフィールを次のように更新しました。

それが私に必要なものかどうかは完全にはわかりませんが。ドキュメントに記載されている例に従ってください。

vendor/autoload.phpを次のように置き換えて更新require_onceしましたrequire

しかし、そのファイルはdocsのサンプルコードとは異なるため、これには少し混乱しています。すでにあるものではなく、ここのドキュメントに行を追加すると、それ自体が読み込まれます。(試してみました。バーフしました。)私は完全に密集していますか、それともここの言葉遣いは混乱/誤解を招きますか? 私はこれを正しく行いましたか?

前に述べたように、次の 3 つのコンテキスト ファイルがありますfeatures/bootstrap

cli 経由でテストを実行するときは、 を渡すと、--profileで適切なプロファイルが使用されbehat.ymlます。ほとんどすべてのプロファイルで、FeatureContextが使用されています。

FeatureContext私が言えることから、EnvironmentContextとを取得します。MinkContextしたがって、理論的には、すべてがそこで機能するはずです。

それだけではありません。

すべての Symfony のものを追加する前に、私はこれを得ていました:

これが、composer を介して Symfony のものを追加した理由です。

また、おそらく注意してください: composer を介して Symfony のものをインストールする前に、 --profile を渡すのを忘れたときに、次のようになりました。

これは予想されることだと思います。

だから私は今途方に暮れています。アイデア?

私はそれを理解できるかどうかを確認するためにそれを叩き続けるつもりですが、アイデア/入力は大歓迎です.

再度更新します。

yml から拡張セクションを削除すると、次のようになります。

behat.yml の現在の状態:

0 投票する
1 に答える
876 参照

passwords - マスクされたパスワードの sahi スクリプトでのアサーション

sahi スクリプトでアサーションを適用して、パスワード フィールドにマスクされた値が表示されているかどうかを確認するにはどうすればよいですか? 例えば、**********