首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在pythonnet中导入FlaUI.FlaUI3库

无法在pythonnet中导入FlaUI.FlaUI3库
EN

Stack Overflow用户
提问于 2022-02-03 09:26:14
回答 1查看 95关注 0票数 0

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

这是我的密码

代码语言:javascript
复制
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),

代码语言:javascript
复制
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的内容,

代码语言:javascript
复制
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),

代码语言:javascript
复制
C:\Users\amit_tendulkar>dotnet --version
6.0.101
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-03 09:39:35

看起来FlaUI.UIA3.dll依赖于Interop.UIAutomationClient.dll

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70968705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档