为什么我的自动化测试不能点击这个按钮?

Why can't my automated Test click on this button?

在我手动编码的 CODEDUI 测试中,我在要单击的网页上有一个按钮,其标记如下所示:

<button onclick="window.location='/create-this#/authenticate'">Create This</button> 

此代码执行点击,注意我已经证明返回了正确的按钮实例并且 var BTN 是正确的控件。

               btn.EnsureClickable();
               btn.SetFocus();
               Mouse.Click(btn);

我什至可以看到尝试点击发生在浏览器的那部分 window,所以我知道它是控件的 "finding" 和 "navigating"。

这是错误 message/stack 跟踪:

内部异常 HResult 为:-2147467259

感谢任何帮助。

解决方案:IE 和 Chrome 记住它们最后关闭的监视器,以及浏览器大小。当 CodedUI 启动浏览器时,它会在最后一个已知的监视器上打开。

我用三台显示器进行测试,发现两个较大的(非笔记本电脑)显示器在自动测试中点击失败(一个比另一个多)。我所要做的就是在(笔记本电脑的)主显示器上打开和关闭浏览器,然后测试 运行 没问题。

这意味着显示器驱动程序、分辨率和其他因素以某种方式影响了测试失败。我假设 CodedUI 只调用较低级别的 "things" 来完成它的工作,并且对它所对抗的 windows 的实际宽度几乎没有或根本没有概念。