0

私はいくつかの UI 自動化ソフトウェアに取り組んでおり、このプロジェクトの要件では Windows 環境でのみ使用されるため、最近プロジェクトを Python から IronPython に移動しました。ただし、Windows Presentation Foundation (WPF) を使用するプログラムの UI を自動化する必要があります。White という便利そうなライブラリを 1 つ見つけました。

http://white.codeplex.com/

したがって、IronPython プログラムでこれを使用したいと考えていますが、これまでに見た、C# で記述されたモジュールまたは C# インターフェイスを使用したモジュールをインポートするサンプル コードはすべて、Microsoft/Windows ビルトイン用でした。こちらの記事によるとIronRubyでできるので参考になればいいなと思いました。

http://www.natontesting.com/2010/02/17/how-to-test-a-wpf-app-using-ironruby-and-white/

ただし、IronRuby が White をインポート/参照する手段/構文は、IronPython が行う方法とは大きく異なると想像する必要があります。IronPython と White を使用しているという他の開発者による投稿も見つけましたが、実際に White を参照するためのコードを含む投稿は見つかりません。これについてどうすればいいですか?

4

2 に答える 2

4
import clr
clr.AddReference("White.Core")
clr.AddReference("White.NUnit")
from White.NUnit import *
from White import *
from White.Core import *
from White.Core.Configuration import *
from White.Core.UIItems import *
from White.Core.UIItems.WindowItems import *
from White.Core.UIItems.ListBoxItems import *
from White.Core.UIItems.Container import *
from White.Core.UIItems.Finders import *
from White.Core.Factory import *
from White.Core.Finder import *
from White.Core.AutomationElementSearch import *
from White.Core.WindowsAPI import *

次に、白い API を通常どおり使用します。

app = Application.Attach(proc)
win = app.GetWindow('Window Caption')
print win.Name
box = win.Get[MultilineTextBox]('textBoxId')
print box.Text
于 2011-10-25T14:42:59.800 に答える
3

IronPython は、以下を使用して任意の CLR アセンブリをアドレス指定できます。

import clr

clr.AddReference("AssemblyName")

白いプロジェクトは .NET ベースなので、これでうまくいきます。アセンブリからオブジェクトを使用するには:

from AssemblyName import *

(もちろん、ここでサブセットを使用できます)

次に、オブジェクトをインスタンス化して使用します。

from System.Collections import BitArray
ba = BitArray(5)
ba.Set(0, True) # call the Set method
ba[0]

このドキュメントが役立ちます。

于 2011-10-24T17:28:48.403 に答える