【问题标题】:Selenium - Executing AutoIT Scripts - JenkinsSelenium - 执行 AutoIT 脚本 - Jenkins
【发布时间】:2015-03-26 20:24:27
【问题描述】:

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

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

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

Jenkins 作为 Master 在 Windows 2012 R2 上运行

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

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

谢谢!

【问题讨论】:

  • 你有没有解决这个问题。我也遇到这种情况了,如果有解决办法可以帮帮我。

标签: .net jenkins selenium-webdriver nunit autoit


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    在操作外部应用程序窗口时,请始终使用#RequireAdmin 以获得权​​限提升。也可以使用 Opt("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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-14
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多