【发布时间】:2016-04-15 23:51:24
【问题描述】:
我一直在调试测试,发现量角器正在找到正确的元素,但位置(x 和 y)没有链接到已找到的按钮的位置。当在此元素上调用 click 时,它会错过并单击错误的位置,从而导致测试失败。
请注意,这些测试似乎在其他机器上运行良好,唯一的区别是测试失败的操作系统是 Windows 10?
有谁知道量角器/硒如何确定元素的位置。
提前致谢。
杰克·里维斯
编辑:
在评论请求一些例子之后:
获取页面对象:
browser.get('examplePageAddress')
获取按钮所在的标题:
var elem = element.all(by.className('header')).get(0)
获取按钮位于标题内的div:
var div = elem.element(by.name('examplename'))
获取实际按钮
var button = element(by.name('exampleButtonName'))
在实际测试中,一个简单的 button.click() 被调用,这就是缺少大约 50px 的按钮。
通过调试和写入控制台,我确认选择了正确的元素 [使用 .getInnerHTML()] 并通过测量按钮的位置确定它大约有 50px 不同 [使用 .getLocation() 来确定 x 和y 由量角器返回]
【问题讨论】:
-
你能做一个可重现的例子吗?另外,请说明您是如何确定位置的。谢谢。
-
元素是否有动画,或者上面有任何看起来不寻常的css?
-
看起来不像,正如我所说,当这个测试在其他机器上运行时它确实有效,这是最奇怪的事情!按钮本身在它自己的 div 中,并且它的 div 位置是错误的:S
-
另外一点,在观看测试运行时,我看到它点击了页面上的错误位置,因为它点击了一个文本框,我主要希望了解量角器/硒如何确定元素的位置,所以如果您知道任何文档(官方文档只是说它返回 x 和 y),我可以做一些阅读。
标签: angularjs google-chrome selenium selenium-webdriver protractor