前書き
私は、古い GForge システム (コミュニティ エディション v5.6.1) を使用してソース コードをホストし、さらにサービスを提供するプロジェクト チームの一員です。組み込みサービスの 1 つは、アップロードおよびダウンロード機能です。したがって、ユーザーは生成されたアプリケーション バージョンを簡単に取得できます。このダウンロード可能なバージョンを提供するために、私たち開発者はブラウザ (IE や FF など) を使用して適切な GForge ページに移動し、いくつかのボタンにチェックを入れ、いくつかのテキスト ボックスに入力し、最後に [アップロード] ボタンをクリックして、ファイル ダイアログを使用して、GForge ダウンロード エリアにアップロードするファイルを指定します。ダウンロードの場合も手順は同様です。さらに、セッション ログインを要求する別の WEB ページが時々表示されます。
現在、私たち開発者は「ホット フェーズ」にあり、ダウンロード可能なバージョンを頻繁に提供する必要があるため、上記の手順では、リリースの重要な部分に関してエラーが発生しやすく、遅すぎます。それに加えて、画面の前でクリックする必要のある実在の人物が常に存在します。
質問
最初の手で (もちろん有効なユーザー アカウントを使用して) パスワード ページを克服しながら、GForge のダウンロード エリアに生成されたソフトウェア バージョンをプログラムでアップロードおよびダウンロードするにはどうすればよいでしょうか?
これまでに試したこと
Python スクリプトの使用。Python は、「urllib」、「urllib2」、「requests」などの非常に便利なモジュールを提供します。これらを使用すると、HTTP アクセス (セッション パスワード保護を備えたものも含む) を管理できます。何時間も試行した後、GForge システムはパスワード要求ページのみを返します。興味深いファイルはありません。何かをアップロードすることからも遠く離れています。
AutoIt スクリプトを使用します。AutoIt は、マウスの移動とキーボードの押下を自動化するだけでなく、画面上の表示要素への直接アクセスも自動化できます。ウィンドウ要素を識別する「ウィンドウ情報」アプリケーションを提供します。ただし、たとえば、 Web ページ (HTML)内のボタンやテキスト フィールドは認識されません。そのため、マウスを移動して必要なテキストを入力するために、GForge のパスワード テキスト フィールドを正しく識別する方法がわかりません。そこからは、画面の前に座っている人の真似をしていきます。
私たちの問題の解決に関する経験はありますか?