1

前書き

私は、古い GForge システム (コミュニティ エディション v5.6.1) を使用してソース コードをホストし、さらにサービスを提供するプロジェクト チームの一員です。組み込みサービスの 1 つは、アップロードおよびダウンロード機能です。したがって、ユーザーは生成されたアプリケーション バージョンを簡単に取得できます。このダウンロード可能なバージョンを提供するために、私たち開発者はブラウザ (IE や FF など) を使用して適切な GForge ページに移動し、いくつかのボタンにチェックを入れ、いくつかのテキスト ボックスに入力し、最後に [アップロード] ボタンをクリックして、ファイル ダイアログを使用して、GForge ダウンロード エリアにアップロードするファイルを指定します。ダウンロードの場合も手順は同様です。さらに、セッション ログインを要求する別の WEB ページが時々表示されます。

現在、私たち開発者は「ホット フェーズ」にあり、ダウンロード可能なバージョンを頻繁に提供する必要があるため、上記の手順では、リリースの重要な部分に関してエラーが発生しやすく、遅すぎます。それに加えて、画面の前でクリックする必要のある実在の人物が常に存在します。

質問

最初の手で (もちろん有効なユーザー アカウントを使用して) パスワード ページを克服しながら、GForge のダウンロード エリアに生成されたソフトウェア バージョンをプログラムでアップロードおよびダウンロードするにはどうすればよいでしょうか?

これまでに試したこと

Python スクリプトの使用。Python は、「urllib」、「urllib2」、「requests」などの非常に便利なモジュールを提供します。これらを使用すると、HTTP アクセス (セッション パスワード保護を備えたものも含む) を管理できます。何時間も試行した後、GForge システムはパスワード要求ページのみを返します。興味深いファイルはありません。何かをアップロードすることからも遠く離れています。

AutoIt スクリプトを使用します。AutoIt は、マウスの移動とキーボードの押下を自動化するだけでなく、画面上の表示要素への直接アクセスも自動化できます。ウィンドウ要素を識別する「ウィンドウ情報」アプリケーションを提供します。ただし、たとえば、 Web ページ (HTML)内のボタンやテキスト フィールドは認識されません。そのため、マウスを移動して必要なテキストを入力するために、GForge のパスワード テキスト フィールドを正しく識別する方法がわかりません。そこからは、画面の前に座っている人の真似をしていきます。

私たちの問題の解決に関する経験はありますか?

4

1 に答える 1

0

あなたのシステムを v6.4.2 (現在の GForge バージョン) にアップグレードします。そこから、これらすべてを可能にする SOAP インターフェイスにアクセスできます。GForgeNEXT がリリースされると ( https://next.gforge.com )、SOAP インターフェイスは REST-ful API に置き換えられ、この統合がさらに容易になります。

5.6.x から v6.4.2 へのアップグレードは少し面倒ですが、gforge.com でアカウントを作成し、こちらから無料のサポート チケットを開いてください:

https://gforge.com/gf/project/gforge5/tracker/?action=TrackerItemBrowse&tracker_id=10345

免責事項: 私の会社は GForge を管理しているため、上記のアドバイスは有料のクライアントに提供します。さらに明確にするために、GForge のファイルはファイル システムに保存されます。SOAP インターフェイスを使用すると、チケットまたはドキュメントのデータベースにアクセスして、適切なドキュメントを取得し、置換することさえできます。プログラム的には、これが最もクリーンな答えです。

于 2016-10-13T17:12:28.913 に答える