0

我正在尝试FlaUI使用pythonnet. 该代码能够加载FlaUI.UIA3.dll. 但是,导入FlaUI.UIA3命名空间失败。

这是我的代码,

import clr
import sys
dll_path = 'C:\\Users\\amit_tendulkar\\.nuget\\packages\\flaui.core\\3.2.0\\lib\\net45'
dll_path2 = 'C:\\Users\\amit_tendulkar\\.nuget\\packages\\flaui.uia3\\3.2.0\\lib\\net45'
sys.path.append(dll_path)
clr.AddReference('FlaUI.Core')
sys.path.append(dll_path2)
clr.AddReference('FlaUI.UIA3')
from FlaUI.Core import Application
from FlaUI.Core.Conditions import ConditionFactory
from FlaUI.Core.Tools import Retry
from FlaUI.UIA3 import UIA3Automation
from FlaUI.UIA3 import UIA3PropertyLibrary

我得到的错误如下(使用命令python sample.py),

Traceback (most recent call last):
  File ".\ToadApp.py", line 12, in <module>
    from FlaUI.UIA3 import UIA3Automation
ModuleNotFoundError: No module named 'FlaUI.UIA3'; 'FlaUI' is not a package

如果我不包含该FlaUI.UIA3库,那么我可以使用Application.Launch('software.exe').

这是我的目录的内容,其中FlaUI3.UIA3.dll包含

C:\Users\amit_tendulkar>dir C:\Users\amit_tendulkar\.nuget\packages\flaui.uia3\3.2.0\lib\net45
 Volume in drive C has no label.
 Volume Serial Number is 8692-D75E

 Directory of C:\Users\amit_tendulkar\.nuget\packages\flaui.uia3\3.2.0\lib\net45

25-01-2022  22:28    <DIR>          .
25-01-2022  22:28    <DIR>          ..
17-07-2020  02:05           105,472 FlaUI.UIA3.dll
17-07-2020  02:05            28,095 FlaUI.UIA3.xml
               2 File(s)        133,567 bytes

Dotnet 版本(使用 Windows 10),

C:\Users\amit_tendulkar>dotnet --version
6.0.101
4

1 回答 1

0

看起来FlaUI.UIA3.dllInterop.UIAutomationClient.dll.

将代码更新到下面解决了我的问题。

import clr
import sys
flaui_core_path = 'C:\\Users\\amit_tendulkar\\.nuget\\packages\\flaui.core\\3.2.0\\lib\\net45'
flaui_uia3_path = 'C:\\Users\\amit_tendulkar\\.nuget\\packages\\flaui.uia3\\3.2.0\\lib\\net45'
interop_uiautomation_path = 'C:\\Users\\amit_tendulkar\\.nuget\\packages\\interop.uiautomationclient\\10.18362.0\\lib\\net45'
sys.path.append(flaui_core_path)
clr.AddReference('FlaUI.Core')
sys.path.append(interop_uiautomation_path)
clr.AddReference('Interop.UIAutomationClient')
sys.path.append(flaui_uia3_path)
clr.AddReference('FlaUI.UIA3')
from FlaUI.Core import Application
from FlaUI.Core.Conditions import ConditionFactory
from FlaUI.Core.Tools import Retry
from FlaUI.UIA3 import UIA3Automation
from FlaUI.UIA3 import UIA3PropertyLibrary
于 2022-02-03T09:39:35.927 回答