Selenium - 执行 AutoIT 脚本 - Jenkins

Selenium - Executing AutoIT Scripts - Jenkins

此问题源于 C# 平台上的 Selenium、Jenkins 和 NUnit。

我有一个调用 windows 身份验证框进行登录的应用程序。我最终使用 Autoit 登录,并且在本地一切正常。但是,当从 Jenkins 执行此操作时,一切都会失败。我对 autoit 脚本做了一些更改,我当前的失败是 "Modal dialog present"。 (我使用 WinWait 与 WinWaitActive)

我的猜测是 exe 在从 Jenkins 启动时没有 运行。权限问题?

Jenkins 运行正在 Windows 2012 R2 作为大师

C#代码: System.Diagnostics.Process.Start(Path.Combine(base.BasePath, @"folder\autoitfile.exe"));

有人知道是什么原因造成的吗?

谢谢!

操作外部应用程序 windows 时,始终使用 #RequireAdmin 以获得权​​限提升。也可以使用 Opt("WinSearchChildren", 1) 来搜索 child windows。和 "WinTitleMatchMode"

一起玩
#RequireAdmin ;Will give your script a permission elevation (sometimes its needed)
Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("WinSearchChildren", 1) ;0=no, 1=search children also

我遇到了同样的问题。事实证明,在我的例子中 window 没有出现,脚本一直在等待。我将超时参数添加到 WinWaitActive 方法调用中,现在我的脚本不再挂起。此外,我还必须让活动线程休眠一段时间以确保用户已登录。

public void Login(string username, string password, int waitForit)
{
    AutoItX.WinWaitActive(title: "Windows Security", timeout: 15);
    AutoItX.Send(username);
    AutoItX.Send("{TAB}");
    AutoItX.Send(password);
    AutoItX.Send("{ENTER}");

    Thread.Sleep(waitForit);
}

希望这有助于解决您的问题。