2

私はいくつかのWebサイトから情報を取得するためのツールを作成していますが、すべてログインする必要があります。私の通常のアプローチは、Fiddlerなどで要求と応答をたどり、その直接のパスをたどることです。

しかし、それは少し厳しい感じがします。ウェブサイトの最小限の変更は私のコードを壊す可能性があります。だから私は次のように使用できるUIのない​​ブラウザのようなものを探しています:

Browser.Load("https://sourceforge.net/account/login.php");
Browser.Document.ElementById("form_loginname").Value = "login";
Browser.Document.ElementById("form_pw").Value = "password";
(Browser.Document.ElementById("login") As WebButton).Click(); // the login button is named "login".

このコードが終了したら、通常のブラウザで表示されるページを表示したいと思います。

私が説明したようなものは存在しますか?

編集-C#サポートが推奨されます

4

2 に答える 2

2

これは、Web アプリケーションの自動ユーザー テストによく似ていますが、主な違いは、テスト対象のアプリケーションを所有していないことです。

Seleniumは、ブラウザの駆動を自動化するための一般的なライブラリです。Selenium を使用してプログラムをヘッドレスで実行したい場合は、Xvfb などのヘッドレス X サーバーを使用できます。Xvfb を使用しないことに関しては、代替手段に関する古い質問があります。

Selenium はさまざまなプログラミング言語から多くのブラウザーを駆動できるため、StackOverflow で Selenium タグを調べることをお勧めします。

あなたにとって特に興味深いのは、 SimpleBrowser.WebDriverのようなものです: .Net のメモリ内軽量ブラウザ用の Selenium バインディング。実際、 Selenium の複雑さを追加することなく、 SimpleBrowserが直接ニーズに対応する可能性があります。

于 2012-11-08T23:38:53.653 に答える
1

私のXidelはそのようなことをすることができます:

例えば:

 xidel https://sourceforge.net/account/login.php -f 'form((//form)[2], "form_loginname=login&form_pw=password&login=Log in")' --download site.html

('login=Log in' は送信ボタンの値です)

JavaScript には対応していません。セレンと呼ばれるものがあると聞きました...

于 2012-11-08T23:39:40.300 に答える