Selenium - 执行AutoIT脚本 - Jenkins

时间:2015-03-26 20:24:28

标签: .net jenkins selenium-webdriver nunit autoit

这个问题源于C#平台上的Selenium,Jenkins,NUnit。

我有一个应用程序调用windows auth框进行登录。我最终使用Autoit登录,一切都在本地很好用。但是当从Jenkins执行时,一切都失败了。我对autoit脚本做了一些更改,我当前的失败是“模态对话框存在”。 (我使用的是WinWait和WinWaitActive)

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

Jenkins作为Master

在Windows 2012 R2上运行

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

任何人都有关于可能导致此问题的想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。事实证明,在我的情况下,窗口没有出现,脚本一直在等待。我将timeout参数添加到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);
}

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

答案 1 :(得分:0)

操作外部应用程序窗口时,请始终使用 #RequireAdmin 以获取权限提升。还可以使用选项(" WinSearchChildren",1)来搜索子窗口。使用" 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