我正在使用带有angularJS的量角器和selenium服务器进行UI测试,
这是我的TestCase:
it('Click on Top Headings one by one', function () {
//click on Top Heading one by one
ptor.element.all(by.repeater('application in workbenchOptions.applications')).then(function (arrs) {
ptor.sleep(3000);
arrs[2].click();
ptor.sleep(3000);
arrs[3].click();
ptor.sleep(3000);
arrs[1].click();
ptor.sleep(3000);
arrs[2].click();
ptor.sleep(3000);
arrs[0].click();
ptor.sleep(2000);
});
});
这是我的UI,我试图逐个点击每个标题
首先,我点击了arrs[2]
,即Clientside测试用例
然后我点击arrs[3]
,arrs[1]
,arrs[2]
,arrs[0]
,一切都在点击,但如果在开始时假设arrs[0]
已经打开然后我再也无法点击这个,我收到了一条错误信息
UnknownError: unknown error: Element is not clickable at point (1254, 21).
Other element would receive the click:
<div class="slider-wrapper pl-pageslide-wrapper" style="transition: width 0.3s, height; -webkit-transition: width 0.3s, height; z-index: 1000; position: fixed; left: 0px; top: 0px; bottom: 0px; right: 0px; width: auto; background: rgba(0, 0, 0, 0.498039);">...</div>
我针对Chrome和Firefox进行了测试,发生了同样的错误
答案 0 :(得分:2)
我对没有固定位置的元素有类似的问题。我在量角器中使用了以下代码:
var el = ...; // some protractor element
el.getLocation().then(function(location) {
browser.executeScript("window.scrollTo(0," + (location.y - 70)+ ")");
el.click();
});
注意:我还使用-70px的偏移量,因为页面的页面顶部有一个固定的菜单。如果没有偏移,元素将在菜单后面滚动,并且会再次显示消息“元素不可点击...”。
答案 1 :(得分:1)
我认为这对你有帮助:
ptor.executeScript('window.scrollTo(1254,21);').then(function() {
element(by.<<here your button locator>>).click();
})
您的webdriver无法读取该点(1254,21),原因是您的量角器浏览器无法覆盖整个页面您要测试的内容,然后我们给出一个浏览器滚动到该点的命令( 1254,21),然后执行点击操作