問題タブ [browser-automation]

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 投票する
5 に答える
58395 参照

linux - JavaScript を使用した Lynx

そこで、JavaScript を実行する必要があるスクリプトを PHP で作成しました。Linuxツールを使用してphpでjavascriptを同時に実行して自動化する方法の解決策を見つけるのに苦労しました(ブラウザで実行することは選択できないため、crontabにする必要があります)。javascript を実行しないため、「php」コマンドを使用することもできません。それで私は解決策を見つけました、それはオオヤマネコでした。

ここに私の問題があります。何らかの理由で、javascript は私のブラウザでは問題なく実行されますが、lynx では実行されません。lynx を使用すると、javascript の関与なしにページが読み込まれます。lynx で javascript をデバッグする方法はありますか? コンソールから何が起こっているかを表示できる Google Chrome のようなもので、スクリプトが lynx で実行されない原因を突き止めることができますか?

編集:

したがって、明らかに lynx は JavaScript をサポートしていません。その場合、私の質問は、何をしますか? このスクリプトは、ブラウザと同じように実行する必要がありますが、Linux コマンド プロンプトから実行する必要があります。この場合、OS が問題になる場合は、最新の Ubuntu を実行しています。

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

xpath - XPATHを使用したロケーターアクセスのSeleniumIEサポート

xpathを使用してhtmp/jspWeb要素を見つけようとしています。Seleniumテストツールとそのライブラリを使用してWeb要素(findElementByXPath())にアクセスしています。以下のようにエラーが発生し続けます:

Xpath==の要素が見つかりません

あなたからのお便りを楽しみにしています。

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

.net - Selenium Webdriver 2.20 .net クライアント、依存関係の問題?

現在、奇妙な問題が発生しています。いくつかの受け入れテストを開始したばかりで、最新の Selenium Webdriver を NUGet に移動しました。正常にインストールされ、すべてが機能していることを証明する簡単なテストを作成しました。

このプロジェクトは、.net 4 を使用した単なるデフォルトのクラス ライブラリであり、すべてが含まれており、Resharpers テスト ランナーを介してテストをビルドおよび実行しました。次に、以下のエラーが発生しました。

OpenQA.Selenium.WebDriverException : Firefox への接続中にエラーが発生しました ----> System.IO.FileNotFoundException : ファイルまたはアセンブリを読み込めませんでした 'Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c' またはその依存関係の 1 つ。システムは、指定されたファイルを見つけることができません。OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() で OpenQA.Selenium.Firefox.FirefoxDriver..ctor() で --FileNotFoundException で OpenQA.Selenium.Firefox.FirefoxExtension.Install(String profileDir) で OpenQA.Selenium.Firefox で。 OpenQA.Selenium.Firefox.FirefoxProfile.WriteToDisk() の FirefoxProfile.InstallExtensions() OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() の OpenQA.Selenium.Firefox.FirefoxDriver.StartClient()

私は少し困惑し、ライブラリの .net 3.5 バージョンを使用する必要があるのではないかと考えましたが、同じエラーはありませんでした。次に、.net 4 に戻って、プロパティで SpecificVersion を使用するようにアセンブリに指示しようとしましたが、まだ運がありません。

x86用にビルドしていて、firefoxがデフォルトの場所にインストールされていることを確認し、firefoxプロファイルにexeの場所へのリンクを提供し、firefoxバイナリを作成して、どこを見るかを伝えましたが、まだうまくいきません. 次に、NUGet バージョンを削除し、Web サイトからクライアント ドライバーのバイナリを取得しましたが、同じ問題が発生しました。

バージョンを切り替えてさまざまな CPU タイプ用にビルドしようとした後、私はアイデアがありません。このような問題についてはほとんど文書化されていないため、役に立つ場合に備えて他の情報を次に示します。

  • Windows 7 プロフェッショナル 64 ビット
  • Visual Studio 2010 Premium (Resharper 6 を使用)
  • Firefox 11 (デフォルトの場所にインストール)

Internet Explorer ドライバーを使用して、Firefox 固有の問題ではないことを確認しようとしましたが、以下に示す別のエラーが表示されます。

だから今、私はアイデアがなくなり、これまでに約3時間を無駄にしました:(

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

javascript - JavaScript/VBA 自動化: onclick 属性の変更

onclickVBA のオートメーションを使用して、フォーム上のボタンのイベントから関数呼び出しを変更しようとしています。関数Xは既に Web ページにハードコードされており、そのコードを変更するアクセス権がありません。(このページは社内のページですが、私はその部門には属していません)。

私のシナリオが収まったら、 functionXを new functionに置き換えたいと思いますY

この SO と同様の質問があるようですが、ほとんどの場合、JS コード内から要素属性を変更することを参照しているようです。私の問題は、VBAでこれを行う必要があり、そこに到達する方法がわからないことです。

このサイトsetAttributeには、このプロセス ( 、getAttributeなど)に関する多くの情報があります。これには、あるブラウザーと別のブラウザーを使用する場合の注意事項に関する有用な情報が含まれています。私のコードはすべて IE (会社が提供するもの) とやり取りするので、他のブラウザー オプションについて心配する必要はありません。

属性を変更しようとするとonclick、VBE ウォッチ パネルに属性の変更が表示されますが、期待どおりに動作しません。属性を変更した後、クリックしても何も起こりません ( objButton.Click/の自動化によってobjButton.onclick、または実際にボタンを手動でクリックすることによって)。他の属性 (つまり ) でもこれを試しましたonfocusが、同じ結果が得られました。上記のリンクでは、IE にはこれに問題があると書かれていますが、私は JavaScript にあまり詳しくなく、ガイドに従うのに苦労しています。

私が試したのは次のとおりですが、すべて同じ結果になります。

オプション1:

オプション 2:

オプション 3:

オプション 4:

オプション 5:

これらのさまざまなメソッドを試しているときに、VBE ウォッチ ウィンドウのonclick属性のが、新しい関数を呼び出すようにボタンを強制しようとした後、元の型の Variant/Object から Variant/String に変わることに気付きました。これには何かがあると感じています。私の問題を処理します。

誰かが(可能であれば)これを機能させる方法を説明できますか?

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

firefox - URLだけでなく、現在のWebページへのHTMLリンクをクリップボードにコピーするFirefox拡張機能

状況

現在の Firefox タブに表示されている現在のページへの HTML リンクを他の WYSIWYG エディターにコピーする作業を自動化する必要があります。これは、URL のプレーン テキストのみをコピーすることと同じではなく、Web ページ タイトルのプレーン テキストのみを貼り付けることとも同じではありません。これは、関心のあるページへの HTML リンクがある他の Web ページに移動し、マウス カーソルでテキストを選択し、CTRL-C を入力して現在のオペレーティング システムのクリップボード (どちらも Linux) にコピーすることと同じではありません。と Windows では、違いはありません)。クリップボードへの更新のみが自動化されます。クリップボードからターゲット アプリケーションへの貼り付けは手動で行われます。

希望するユースケースは次のとおりです。

  1. ユーザーは、Firefox 内から任意の Web ページを閲覧します。
  2. ユーザーは、標準の Firefox 組み込みキー バインドと競合しないユーザー指定のキー シーケンスを入力します。
  3. Firefox は、リンクのコピー ブックマークレットが行うことの一部のみを行い ます。新しい別のウィンドウ/タブを開き、リンクの HTML を構築してレンダリングし、ユーザーがリンクを選択してクリップボードにコピーする際に動きを無駄にする必要はありません。 、拡張機能は HTML 自体をフォーマットし、それをクリップボードに直接コピーします。
  4. ユーザーは、次に説明するターゲットのいずれかを選択し、CTRL-V を入力して、書式設定されたテキストを貼り付けます。
  5. ユーザーはそのリンクをそのターゲット領域内のリンクとして認識し、次の ような文字どおりのものは表示しません。http://...

たとえば、閲覧した Web ページがhttp://www.google.comで、ユーザーがユーザー定義のキー シーケンスをクリックし、それを Google ドキュメントに貼り付けた場合、そのドキュメントに表示される内容 http://www.google.comも表示されませんがGoogle、代わりに、Web ブラウザーの StackOverflow でこれを読んだときに表示されるものが表示されます: Google

現在、Firefox の拡張機能とブックマークレットに近いものがありますが、それらはすべて、この頻繁に発生するユース ケースで最も時間を浪費する側面である、マウスの動きやキーを押すオーバーヘッドの正味の削減には関与していません。既存の拡張機能を検索しても、私のニーズを正確に満たすものは見つかりませんでした (以下の調査セクションを参照)。したがって、誰かがこの機能を提供する既存の拡張機能を教えてくれない限り、独自の拡張機能を展開する (または既存の拡張機能を変更する) 必要があると思います。

私が考えている拡張機能は、Linux または任意のバージョンの Windows で動作する Firefox バージョン 11 以降で動作するはずです。Firefox と適切な Firefox 拡張機能のみが必要であり、他の特別なソフトウェアは必要ありません。

ペーストのターゲットは次のとおりです。

  1. GMail 作成テキスト領域
  2. Google ドキュメント
  3. Microsoft Word 文書
  4. Microsoft Outlook の構成テキスト領域。
  5. Blogger 投稿エディターなどのその他の WYSIWYG エディター。
  6. メモ帳 (この場合、URL ではなく Web ページのタイトルのみが貼り付けられるか、Web ページのタイトルと URL の両方が別のプレーンテキストとして貼り付けられます)。

ユーザー指定のキーバインディングについて: 上記を実行する拡張機能がすでに存在するが、キーバインディングをバインドする機能を提供していない場合、 keyconfig 拡張拡張機能を使用してその側面を処理できると期待します。実際、それは望ましいことかもしれません。私にはまだ分かりません。

リサーチ

以下は、私が調査したアプローチで、私が望むものに近づいたものの、ニーズを正確には満たしていませんでした。

  1. Copy Link Bookmarkletのハッキングは機能しません。なぜなら、ブックマークレットから OS のクリップボードを更新する方法がないためです。そのため、Firefox の拡張機能が必要だと思います。
  2. Firefox 拡張機能で、リッチ テキスト/リンクをクリップボードにコピーするにはどうすればよいですか?
  3. リンクとアンカーテキストを簡単にコピーできる 3 つの FireFox アドオン-- リストされている拡張機能のどれも、私が望んでいるものではありません。
  4. リンク テキストのコピー (CoLT) -- CoLT は、ハイパーリンクとそれに関連するテキストをリッチ テキスト形式のリンクとしてコピーすることもサポートしていますが、デフォルトのキーバインドは含まれていません。他の誰かが keyconfig を CoLT に結び付けようとしているようです。これは解決策としてのオプションである可能性があります。
  5. Copy URL Plus -- クリップボードへのコピー ロジックがあるように見えますが、Firefox 1.x の時代から維持されているようには見えません。
0 投票する
6 に答える
13349 参照

selenium - Seleniumを使用して高負荷をシミュレートするストレステストの方法

テストするシステムがあります。これは動画広告配信技術です。広告を配信するには、すべての動画を 1 ~ 2 分ほどロードする必要があります。ビデオは Flash クライアントで再生され、YouTube のように FLV ストリームとしてストリーミングされます。

ブラウザ経由でのみテストする必要があり、他の方法ではうまくいかない理由は、ビデオ ストリーミング サーバーと広告サーバーの両方を同時にストレス テストし、広告をリアルタイムで表示するためです。

私は Selenium、WatiN、Automation Anywhere などの多くの自動化ツールを使用してきました。しかし、自分のマシン (32GB RAM、16 コア CPU) で 10000 のブラウザーを起動しようとすると、どれもその仕事をすることができません。

Selenium を使用すると、これまでのところ最大の FireFox インスタンスを開始できますが、それでもまだ低すぎます。インスタンスの半分はテストを実行していません。

Selenium に関する提案はありますか?

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

vbscript - Internet Explorer の自動化ビジー v/s readystate プロパティ

私はvbscriptが初めてで、読んでいるときにいくつかのコードを見つけました

propertyビジーとreadystateプロパティの違いを教えてください。

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

vbscript - vbscript を使用してスナップショットを保存する

私はvbscriptが初めてです。vbscript で開いた Internet Explorer ウィンドウの vbscript を使用して取得したスナップショットを保存したいと考えています。

ページをロードするコード

スナップショットを取得するコード

スナップショットの保存

実際には、以前に開いた ie ウィンドウにフォーカスがあり、キーストロークはペイントではなく ie に送信されます。の逆の働きをする機能はありますかAppActivate

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

selenium - Selenium - プロパティ HTMLDocument.readyState を取得する権限が拒否されました

Selenium (Firefox 用) を使用していくつかの自動化を行っており、再生するスクリプトを記録しています。プロバイダーがいくつかの新しい変更を展開するまで、これは正常に機能していました。次のエラーが表示されますが、これが何を意味するのかわかりません...

ブラウザの自動化または Selenium の経験がある人は、何かヒントを出してくれますか?

ありがとう

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

htmlunit - HtmlPage オブジェクトを使用して (JS 関数が実行された後に) 正確な HTML を取得するにはどうすればよいですか?

Htmlunit (ブラウザー自動化/テスト ツール) を使用して、URL から Web ページを取得したり、textinput などの特定の HTML 要素に値を追加したりしてから、ステートメントを使用して「クリック操作を自動化したい:

そして、デフォルトのブラウザに応答を表示したい。しかし。私が (URL から) 要求する HTML は、javascript 関数を使用した RAW HTML であり、実行時にいくつかの Web サービスを呼び出した後、正確な HTML (ブラウザーでレンダリングされるもの) が生成されます。
したがって、適切な HTML 要素を取得できるように、Java プログラムでこれらの JS 関数を実行する方法を知りたいと思っていました。探して
いるコードは次のとおりです。

tmlPage オブジェクト page1 には生の JS 関数があります..
よろしくお願いします...!!!