Как импортировать белый проект в программу IronPython? - PullRequest
0 голосов
/ 24 октября 2011

Я работаю над некоторым программным обеспечением для автоматизации пользовательского интерфейса и совсем недавно переместил проект с Python на IronPython, поскольку требования этого проекта указывают, что он будет использоваться только в среде Windows.Однако мне нужно автоматизировать пользовательский интерфейс программы, которая использует Windows Presentation Foundation (WPF).Я нашел эту библиотеку, которая выглядит так, как будто она может быть полезна, под названием White.

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 будетимпорт / ссылка Белый сильно отличается от того, как это делал бы IronPython.Я также нашел посты других разработчиков, в которых говорилось, что они используют IronPython и White, но я не могу найти пост, который содержит код для ссылки на White.Как бы я пошел по этому поводу?

Ответы [ 2 ]

4 голосов
/ 25 октября 2011
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
3 голосов
/ 24 октября 2011

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]

Это документация должна помочь.

...