anglejs – 量角器测试(在角位置使用硒和铬)给出错误的x和y点
我一直在调试测试,发现量角器找到正确的元素,但是位置(x和y)不链接到已经找到的按钮的位置.当在此元素上调用点击时,它会丢失并单击导致测试失败的错误位置.
作为一个注释,这些测试似乎在其他机器上运行良好,唯一的区别是测试失败的操作系统是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返回的量角器]
在这种情况下,首先移动到元素,然后执行点击: browser.actions().mouseMove(button).click().perform(); 或者,scroll into view的元素: browser.executeScript("arguments[0].scrollIntoView();",button.getWebElement()); button.click(); 请注意,getLocation()本身取决于可见区域 – 浏览器确定的视口.在不同的浏览器和不同的操作系统中可能会有所不同.也可以看看: > WebElement.getLocation and WebElement.getSize in screen shots 而且,您可以实际获取视口大小并将其与执行测试的浏览器和系统进行比较 – 我确定您将获得不同的值,请参阅: > Get the browser viewport dimensions with JavaScript 您还可以查看
browser.executeScript("return arguments[0].getBoundingClientRect();",button.getWebElement()).then(function (rect) { console.log(rect.left); console.log(rect.top); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |