2016-05-26 7 views
1

私はpywinauto libを使ってutorrentオートメーションを試しています。私はURLを含むトレントを追加したい。このオプションはファイルメニューの下にあります。私はuTorrentを開いても何も起こらない。私はSwapyを使ってこのコードを生成しました。以下のボックスは、swapyでコードを実行した場合にのみ表示されます。しかし、ファイルに保存してcmdで実行すると、utorrentだけが開き、cmdにトレースバックが発生します。uTorrent Automation pywinautoを使って

The Box where I want to enter the URL and Click OK

from pywinauto.application import Application 

app = Application().Start(cmd_line=u'"C:\\Users\\User\\AppData\\Roaming\\uTorrent\\u Torrent.exe" ') 
torrentdfb = app[u'\xb5Torrent4823DF041B09'] 
torrentdfb.Wait('ready') 
menu_item = torrentdfb.MenuItem(u'&File->Add Torrent from &URL...\tCtrl+U') 
menu_item.Click() 

app.Kill_() 

Traceback: 
Traceback (most recent call last): 
File "AddTorrent.py", line 5, in <module> 
torrentdfb.Wait('ready') 
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 380, in Wait 
WaitUntil(timeout, retry_interval, lambda: self.__check_all_conditions(check_method_names)) 
File "C:\Python27\lib\site-packages\pywinauto\timings.py", line 308, in WaitUntil 
raise err 
pywinauto.timings.TimeoutError: timed out 

私は、Pythonのコーディングに新しいですし、私は専門家ではありませんよ。私の問題やコードを解決するために説明を提供すると役に立ちます。ありがとう!!

答えて

1

uTorrentのは、別のプロセスを生成され、これは私がそれを得た方法である:

>>> app.windows_() 
[] 
>>> app.process 
6096 
>>> app.connect(title_re=u'^μTorrent.*(build \d+).*') 
<pywinauto.application.Application object at 0x000000000405C240> 
>>> app.process 
4044L 

これは、(32ビットのuTorrentと32ビットのPython 2.7との)私のために働いて最終的なコードです:

import pywinauto 

app = pywinauto.Application().start(r'uTorrent.exe') 
time.sleep(5) # because method connect() has no timeout param yet (planned for 0.6.0) 
app.connect(title_re=u'^\u03bcTorrent.*(build \d+).*') 

main_window = app.window_(title_re=u'^\u03bcTorrent.*(build \d+).*') 
main_window.MenuSelect(u'&File->Add Torrent from &URL...\tCtrl+U') 

app.AddTorrentFromURL.Edit.SetText('some URL') 
app.AddTorrentFromURL.OK.Click() 

証人は重要です。 64ビットPythonを使用すると、32ビットのuTorrentがクラッシュします。

+0

私は何が起こったのかわかりませんが、以前のコードでさえ動作していないようです。今すぐコードを実行すると、utorrentだけが開き、何も起こりそうにない。私が端末をチェックバックすると、トレースバックが現れたでしょう。トレースバックはタイムアウトに関連しているようです。タイムアウトを10または15に設定しても、同じエラーが発生します。私に完全なコードを教えていただければ幸いです。私はそれを見て何がうまくいかないかを学ぶでしょう。 – Yashas

+0

明らかに、 'menu_item.edit1.TypeKeys(" url to enter ")'は間違っています。申し訳ありませんが、私はあなたのために全体のスクリプトを書く時間がありません。トレースバックなしで何がうまくいかないのか説明できません。詳細を追加する場合は、質問を編集してください。 –

+0

私はそれを編集しました。トレースバックを追加し、swapyによって生成された正確なコードを「URLからのトレントの追加」をクリックして入れました。コードがcmdで実行されると、utorrentが開き、トレースバックがcmdで指定されます。他に何も起こらない。 – Yashas

関連する問題