首页 文章

在量角器中单击if元素是否可单击

提问于
浏览
0

在网站上我有时会有一些额外的按钮,用于恢复表单中填写的自动保存数据,随机时刻弹出(有时会有人测试某些内容和关闭表单,从而导致弹出按钮) . 我用Continue if element is not visible in protractor尝试了以下代码:

let DoNotRefillBtn=element.all(by.className('modal-button-no'));
    var isApproachable = function(element) {
        return element.isPresent().then(function (present) {
            return present
                ? element.isDisplayed()
                : false;
        });
    };

describe(...)
    it('Open the form:', function () {
            browser.driver.get('foo');
            browser.sleep(1000);
            isApproachable(DoNotRefillBtn).then(function(approachable) {
                if (approachable) {
                    DoNotRefillBtn.click();
                    browser.sleep(500);
                }
                else {
                    browser.sleep(300);
                }
            });

它点击正确,但点击后,它会在 DoNotRefillBtn.click(); 行引发错误 Failed: element not visible .

为什么程序会点击并抛出一个错误,即该东西不可点击(点击后)?

1 回答

  • 0

    我使用了一种解决方法,该按钮带有状态消息“你想重新填写表单吗?” . 因此,当我检查状态消息并单击按钮时,似乎正在工作:

    let StatusMessage=element.all(by.className('status-message'));
    let DoNotRefillBtn=element.all(by.className('modal-button-no'));
    var isApproachable = function(element) {
       return element.isPresent().then(function (present) {
          return present
            ? element.isDisplayed()
              : false;
        });
    };
    
    describe(...)
    it('Open the form:', function () {
            browser.driver.get('foo');
            browser.sleep(1000);
            isApproachable(StatusMessage.get(8)).then(function(approachable) {
                    if (approachable) {
                        DoNotRefillBtn.get(0).click();
                        browser.sleep(500);
                    }
                });
        });
    });
    

    StatusMessage.get(8) 是8,因为有更多的消息具有相同的类,但不显示 . 我计算了哪一个是 status-message 它似乎正在工作 - 如果显示则关闭弹出窗口,但是当它不显示时跳过 .

    适当地检查按钮并单击它会产生一些问题

相关问题