首页 > 解决方案 > 单击弹出窗口中的链接

问题描述

我在单击弹出窗口中的链接时遇到问题。单击按钮后,弹出窗口显示约 3 秒:

<toast-container class="ng-tns-c12-31 ng-star-inserted">
<div class="toast-top-center" id="toast-container" style="position: fixed;">
  <!----><div class="toast toast-info ng-star-inserted ng-animating">
    <!----><div class="toast-close-button ng-tns-c12-31 ng-star-inserted" style="">×
    </div> 
    <!---->
    <div class="ng-tns-c12-31">
      <!----><span class="toast-message ng-star-inserted" style="">Section will removed. <a class="toast-link">Cancel</a></span>
      <!---->
    </div>             
  </div>
</div>
</toast-container>

我试图点击“取消”

element(by.partialLinkText('Cancel'))

var cancelLink = $('#toast-container a');
browser.executeScript("arguments[0].click();", cancelLink)

但是链接没有被点击。我不知道如何断言在此弹出窗口上正常工作

var toastMessageBox = $('#toast-container');
    this.assertClearSelectionToastMessage = function () {
        expect(toastMessageBox.$('span').getText()).toBe(toastText)
        return this;
    }

标签: javascriptautomationwebdriverprotractorautomated-tests

解决方案


弹出窗口尚未加载。该链接不可见,因此无法单击。您必须等待弹出窗口出现。

元素可能是可点击的,而点击元素什么也不做。

请参阅:https ://stackoverflow.com/a/21387564/1997776

@Jonny Leeds 指出:

需要注意的主要事情是按钮是否已启用。您仍然可以单击它们,并且没有任何东西会掉下来,并且元素在那里,但它还没有准备好被单击,所以什么都不做。


推荐阅读