問題タブ [webautomation]

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 に答える
523 参照

ajax - Internetexplorerオブジェクトを使用して、ajax応答を待つ正しい方法は何ですか?

ファイルを sharepoint ライブラリにアップロードしようとしましたが、コードが ajax 応答を待っているかどうかを正しく検出できません。これを行う適切な方法は何ですか?

残りのコードは実行されますが、アップロード フォームはまだ表示されていません。フォームの表示を待つ方法は?

私もこれを試しました(アップロードフォームのボタンが見つからなくなるまで待つ必要があります)が、決して終了しません...


更新:私は問題を見つけたと思います:フォームはiframeで開いています:

しかし今、良いフレーム番号を取得するにはどうすればよいですか?

さらに、getElementsByTagName でフレーム コンテンツにアクセスできるようですが、getElementById ではアクセスできません ....?私はまだ理由を理解していません.:

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

ruby - watir-webdriver でドロップダウン メニュー項目を選択するにはどうすればよいですか

私は watir-webdriver を使用して、アプリケーションの自動化とテストを行っています。その過程で、ドロップダウンをクリックして値を選択する必要がありますが、watir は項目を選択できないようです。助けてください?

私のコード:

HTML:

月、年、およびサイトが要求する性別を選択しようとしています。ご協力いただきありがとうございます :)

0 投票する
3 に答える
766 参照

webautomation - なぜ API 自動化が必要なのですか?

開発の初期段階として API を実行する必要がありますが、製品が稼働した後に API の自動化が必要な理由。具体的な理由はありますか。

Web サイトの機能を追跡するには、機能の自動化で十分であるためです。

機能テストは API テストとどう違うのですか?

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

webautomation - コイプ凍結申請

Coypu を使用して非常に単純なコードを試していますが、例外なくアプリがフリーズします。

新しい C# プロジェクトをセットアップし、nuget を使用して Coypu をインストールしました。アプリケーションの bin フォルダーには、必要なファイルもすべて含まれているようです。

サンプル:

0 投票する
3 に答える
596 参照

selenium - Web ページが埋め込まれた Windows 画面を自動化する方法は?

インストール後に構成画面を開くmsiインストーラーがあります。構成を開始する前に、ログイン資格情報を入力する必要があります。これで、このログイン画面が、Web ページが埋め込まれたウィンドウで開きます。このログイン画面を自動化して、ユーザー名とパスワードを入力する必要があります。

この下の画像では、Windows の画面です。赤い枠線の 1 つはウィンドウ ペインで、その中には資格情報を入力するためのフィールドが表示される Web ページがあります。UISPY を使用してこれを表示すると、ペイン内でポイントすると「値」フィールドに URL が表示されます。

UI オートメーションを使用すると、Web ページを検出できません。セレンを使用すると、ウィンドウ画面を検出できません。このシナリオをどのように処理しますか。どんな提案でも大いに役立ちます。

ここに画像の説明を入力

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

ruby - スクリプトをループさせるにはどうすればよいですか?

スクリプトがサインインしてブラウザーの URL に移動する場所にありますが、現在の Web ページからサインアウトすると、そこに留まり、ループを再開しません。ループが完了したことを認識して再起動するにはどうすればよいですか?

スクリプトが完了すると、ウェブページに座っているだけです...もう一度最初に戻そうとしています...各名前を取得し、パスして最初のURLに戻ると思うでしょう。ご協力いただきありがとうございます。

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

selenium - Selenium Webdriver vs Mechanize

頻繁に使用する Web サイトのいくつかのフォームでの反復的なデータ入力を自動化することに関心があります。これまでのところ、ヘッドレス方式でこれをサポートするツールを調べたところ、Selenium WebDriver と Mechanize が考えられます。

私の質問は、一度使用する場合と他の使用する場合に根本的な技術的な違いはありますか? Selenium は主にテストに使用されます。また、私が探していることを正確に行うためにそれを使用している人もいることに気付きました。それはデータ入力の自動化です。その場合、テストは 2 番目の利点になります。

Mechanize でやりたいことのために Selenium を使用しない理由はありますか? それは問題ではなく、これらのツールは両方とも機能しますか?

私はどちらが優れているかを尋ねているのではなく、どちらが仕事に適したツールであるかを尋ねています。おそらく、各ツールの目的の背後にある前提を理解していないのでしょう。

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

c# - Uris が事前に知られていないマルチスレッド C# Selenium WebDriver 自動化

いくつかの Web ドライバーを同時に操作する必要がありますが、これを行う方法がわかりません。

ここで私が求めているのは次のとおりです。

  1. これを達成する正しい方法は何ですか?
  2. 私が取得している例外の理由は何ですか (以下で明らかにします)

いくつかの調査の後、私は次のようになりました:

1 . 人々がこれを行っているのを見る方法 (および API で遊んだ後、検索する前に使用したもの) は、WebDriver が手元にあるウィンドウ ハンドルをループし、必要なウィンドウ ハンドルへの切り替えを実行することです。終了したら閉じます。

2 . Selenium Grid は、私には選択肢のようには思えません。間違っているのでしょうか、それとも並列処理を目的としているのでしょうか? 1台のコンピューターですべてを実行しているので、私には役に立ちません。


最初のオプションを試す際に、次のシナリオがあります (コードサンプルは以下で入手できます。関連しないものをスキップしたり、それ自体を繰り返したりします (3 つのドットを追加した場所:

いくつかの送信ボタンが積み重ねられたhtmlページがあります。

それらのそれぞれをクリックすると、新しいブラウザー/タブが開きます (興味深いことに、ChromeDriver を使用するとタブが開きますが、FirefoxDriver はそれぞれ別のウィンドウを開きます)。

補足として、各送信の uris を事前に決定することはできません (JavaScript で決定する必要があります。この時点で、クライアント コードについて何も知らずにすべてを処理したいと仮定しましょう。

ここで、すべての送信ボタンをループし、対応する要素で webElement.Click() を発行した後、タブ/ウィンドウが開きます。新しいタブ/ウィンドウごとに 1 つずつ、実行するタスクのリストを作成するコード フロー。

問題は、すべてのタスクがすべて webdriver の同じインスタンスに依存してウィンドウ ハンドルに切り替えるため、リソース共有ロック/コントロールを追加する必要があるようです。マルチスレッド Web ドライバーの例を検索する際にロック/リソース アクセス制御について言及されていないため、私が正しいかどうかはわかりません。

一方、タブ/ウィンドウの URI を事前に決定できれば、この時点に到達するために必要なすべての自動化手順をスキップして、スレッドごとに webDriver インスタンスを作成するNavigate().GoToUrl()ことが簡単になります。しかし、これはデッドロックのように見えます!スイッチを実行せずに、新しく開いたタブ/ウィンドウへのアクセスを提供する webDriver の API が表示されません。そして、現在のウィンドウに導くすべての自動化ステップを繰り返す必要がない場合にのみ、切り替えたいと思います!

...

いずれにせよ、私は例外を受け取り続けます:

Element belongs to a different frame than the current one - switch to its containing frame to use it

ToDictionary()ブロックの中に。

クロムのコンソールで、すべてのセレクターが結果を返していることを明らかに確認しました。