我正在通过Windows Jenkins运行c#单元测试,并且在执行测试时,控制台输出窗口显示所有测试的相同错误:
错误讯息: 测试方法Levan_Test引发异常: System.ComponentModel.Win32Exception:拒绝访问 堆栈跟踪: 在System.Windows.Forms.SendKeys.SendInput(Byte [] oldKeyboardState,Queue previousEvents) 在System.Windows.Forms.SendKeys.Send(字符串键,控件控件,布尔等待) 在System.Windows.Forms.SendKeys.SendWait(String keys)
看起来权限或电源shell命令执行存在一些问题。
代码段:
Thread.Sleep(1000);
driver.FindElement(By.XPath("//*[@id=\"solutionsDropdown\"]/div/i")).Click();
Thread.Sleep(1000);
driver.FindElement(By.XPath("//*[@id=\"solutionsDropdown\"]/ul/li[2]/a")).Click();
Thread.Sleep(1000);
SendKeys.SendWait("{Enter}");
答案 0 :(得分:0)
经过大量研究后我发现:如果您将Jenkins作为服务运行,它就无法处理与桌面交互的内容,例如Windows表单应用程序。您可能希望使用JNLP作为运行这些测试的普通用户在桌面上运行构建代理。