当前位置:  开发笔记 > 编程语言 > 正文

量角器测试(在角度位置使用Selenium和Chrome)给出了错误的x和y点

如何解决《量角器测试(在角度位置使用Selenium和Chrome)给出了错误的x和y点》经验,为你挑选了1个好方法。

我一直在调试测试,发现量角器找到了正确的元素,但位置(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量角器]



1> alecxe..:

在实际测试中,调用一个简单的button.click(),这就是按钮大约50px

在这种情况下,首先移动到元素,然后执行单击:

browser.actions().mouseMove(button).click().perform();

或者,滚动到元素的视图:

browser.executeScript("arguments[0].scrollIntoView();", button.getWebElement());
button.click();

请注意,getLocation()它本身取决于可见区域 - 浏览器确定的视口.它可能在不同的浏览器和不同的操作系统中有所不同.也可以看看:

屏幕截图中的WebElement.getLocation和WebElement.getSize

并且,您实际上可以获得viewport大小并在执行测试的浏览器和系统上进行比较 - 我很确定您将获得不同的值,请参阅:

使用JavaScript获取浏览器视口尺寸

您还可以查看getBoundingClientRect()案例中的返回值:

Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置.

browser.executeScript("return arguments[0].getBoundingClientRect();", button.getWebElement()).then(function (rect) {
    console.log(rect.left);
    console.log(rect.top);
});

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有