量角器+角度误差 - 元素在点上无法点击

时间:2015-01-05 16:10:45

标签: javascript angularjs testing protractor end-to-end

当尝试使用量角器和角度测试模态窗口上的可见按钮时,我收到错误以下错误:

  

UnknownError:未知错误:元素在点(400,234)处无法点击。其他元素会收到点击:<div class="modal-footer">...</div>&#39;。

我已经尝试在每个语句之前将窗口调整为更大的尺寸,并且在点击之前尝试滚动到页面顶部。有什么建议吗?

代码:

it('should create a new portfolio when modal form is completed', function () {
    portfolio_create_btn.first().click().then();
    element(by.model('portfolios.portName')).sendKeys('Test');
    element(by.css('#portfolio-modal-create-button')).click();

    Tabs.filter(function (elem, index) {
        return elem.getTagName('tab-heading').getText();
    }).then(function (filteredElements) {
        expect(filteredElements.length).toEqual(expect_tabs_len_start + 1);
    });
});

大多数HTML:

        <div class="container-fluid">
            <h1 class='port-title port-manager-header title custom-inline'>Portfolios</h1>

            <div ng-controller="ModalCtrl" class='create-new-frame'>
                <!--todo move to a partial or into $templateCache -->
                <script type="text/ng-template" id="myModalContent.html">
                    <div class="modal-header">
                        <h3 class="modal-title">Create New Portfolio</h3>
                    </div>
                    <form name='eventForm' method="POST">
                        <div class="modal-body">
                            <input id='create-new-portfolio-input' class='form-control' ng-model='portfolios.portName'
                                   placeholder='Portfolio name' ng-required='true' maxlength="35" focus-me="true">
                            <span class="help-inline" ng-show="notUnique">Portfolio name already used</span>
                            <!-- 
                            Private/Group selection to be used in future versions
                            <div ng-init="radioModel = 'Right'; portfolios.groupSelection = false" class="btn-group">
                                <label class="btn btn-primary" ng-model="radioModel" ng-click='portfolios.groupSelection = true' btn-radio="'Left'">Group</label>
                                <label class="btn btn-primary" ng-model="radioModel" ng-click='portfolios.groupSelection = false' btn-radio="'Right'">Private</label>
                            </div> 
                            -->
                        </div>
                        <div class="modal-footer">
                            <button class="btn btn-primary" ng-click="ok(portfolios.portName)"
                                    ng-disabled="eventForm.$invalid || notUnique" id='portfolio-modal-create-button'>
                                Create
                            </button>
                            <button class="btn btn-warning" ng-click="cancel()" id='portfolio-modal-cancel-button'>Cancel</button>
                        </div>
                    </form>
                </script>
                <button class="btn btn-sm btn-primary create-new-frame-btn" ng-click="open('sm')">Create New</button>
            </div>
            <div class="title port-title custom-inline pull-right">
            <!-- <span class="text-muted">
                Organization // user
            </span> -->
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

事实证明,导致问题的测试之前的测试是打开模态并将其打开,然后当此测试试图打开新模态时,找不到按钮这样做因为模态已经打开。我没有意识到测试的第一行是导致错误,直到我仔细观察。问题解决了。