检查是否打开模态时获取NoSuchElementError

时间:2017-09-01 20:03:54

标签: javascript typescript protractor

我有一个测试,我试图检查并查看模态是否打开。如果模态是打开的,那么测试工作正常,当它没有打开时,测试失败并出现<Thumbnail source= {require('../images/'+ person.id +'.jpg')} /> 异常。

这是我当前的测试版本:

NoSuchElementError

fit('Share is actually shared', () => { console.log(`\n ### Share is actually shared ${entity.name} ### \n`) listView.clickSharing(entity.name) const sharedWithBefore = sharing.sharedUsers.count() sharing.createShare(sharee) sharing.shareButton.click() // Handle 'Share with Everyone' const isPresent = browser.isElementPresent(sharing.modal.getWebElement()) isPresent.then(result => { console.log('is the modal present: ' + result) if (result) { sharing.modalAcceptButton.click() } }) const sharedWithAfter = sharing.sharedUsers.count() Promise.all([sharedWithBefore, sharedWithAfter]).then(results => { expect(results[0] != results[1]).toBe(true) }) sharing.title.click() common.escapeFromBody() }) 与Everyone`分享后的块中的问题。

我尝试过以下操作但没有一个可行,如果模态没有出现,它就会失败。

// Handle

我不确定在这里尝试什么。如果模态不存在则测试完全失败。我做错了什么?

2 个答案:

答案 0 :(得分:1)

以下是我最终解决的问题:

sharing.modal.isPresent().then(present => {
    if (present) {
        sharing.modalAcceptButton.click()
    } else {
        console.log('The Modal is not present continuing')
    }
 })

答案 1 :(得分:0)

选中分享 sharing.modal 有一些值,因为它是未定义的,那么您可以按照自己的意愿继续。 喜欢: if(sharing != undefined) { if(sharing.modal != undefined) }