【问题标题】:Element is not clickable at point (1254, 21). Other element would receive the click元素在点 (1254, 21) 处不可点击。其他元素会收到点击
【发布时间】:2015-01-12 14:51:34
【问题描述】:

我正在使用量角器和 selenium 服务器和 angularJS 进行 UI 测试,

这是我的测试用例:

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],即客户端测试用例

然后我点击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 都进行了测试,并且出现了同样的错误

【问题讨论】:

  • 我重新检查了我的案例,发现现在每个标题都是可点击的,但仍然收到此消息错误:元素在点 (1254, 21) 处不可点击。其他元素会收到点击:
    ... 当我通过检查元素检查类滑块包装器时,我发现这个类涵盖了完整的 UI,我有同一个问题中的另一个问题,假设以前我打开的顶部标题是 AshuTests,我期待这个,那么这给了我这个错误 Expected 'AshuTests ExcelImport UploadTest MarketPlaceTest' to be 'AshuTests'
  • 您是否尝试过禁用过渡?
  • 你是说禁用或注释掉这个类,class="slider-wrapper,如果是,那么这是不可能的,因为我所有的工作都会受到干扰,有没有其他方法,让其他东西保持原样?
  • 错误消息表明从用户的角度来看,该元素不可点击。上面有没有其他元素,可能有更高的z-index
  • 每个元素都在点击,但我仍然收到此错误消息,从错误消息中我收到 class="slider-wrapper 也收到点击,这是绑定到完整的正文,是否有可能我可以从这个类中删除这个效果吗??

标签: javascript angularjs node.js selenium-webdriver protractor


【解决方案1】:

我对没有固定位置的元素也有类似的问题。我在量角器中使用了以下代码:

var el = ...; // some protractor element
el.getLocation().then(function(location) {
  browser.executeScript("window.scrollTo(0," + (location.y - 70)+ ")");
  el.click();
});

注意:我还使用了 -70px 的偏移量,因为该页面的顶部固定有一个菜单。如果没有偏移,元素会在菜单后面滚动,并再次显示消息“元素不可点击...”。

【讨论】:

    【解决方案2】:

    我认为这对你有帮助:

    ptor.executeScript('window.scrollTo(1254,21);').then(function() {
            element(by.<<here your button locator>>).click();
        })
    

    您的网络驱动程序无法读取该点(1254,21),原因是您的量角器浏览器无法覆盖整个页面您要测试什么,然后我们发出命令浏览器滚动到该点( 1254,21),然后执行点击操作

    【讨论】:

    • 添加解释为什么您认为此代码可能是问题的解决方案。
    • 无论如何,您必须提供解释,否则您的答案可能会被标记为删除。 “答案”与“评论”的区别在于它提供的详细解释。
    • k;您的网络驱动程序无法读取该点(1254,21),原因是您的量角器浏览器无法覆盖整个页面您要测试什么,然后我们发出命令浏览器滚动到该点(1254,21) ),然后执行点击操作。
    • 请将此添加到答案中。单击您的答案上的编辑并将其添加到那里。
    • 这不是合适的解决方案,我如何检查我必须在哪里滚动浏览器才能完成我的工作
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签