【问题标题】:argument of type 'elementfinder' is not assignable to parameter of type 'boolean'“elementfinder”类型的参数不能分配给“boolean”类型的参数
【发布时间】:2019-05-31 21:56:42
【问题描述】:

如果未选中复选框,我正在尝试创建函数,然后在调用此函数时单击它我收到错误消息 “'elementfinder' 类型的参数不能分配给 'boolean' 类型的参数”

//变量

md5hash_checkbox = element(by.id('md5hash'));
 //To check check box if not selected
  selectCheckBox(checkValue: boolean){
        this.checkValue.isSelected().then(selected => {
            if (selected) {
                console.log(checkValue+': Is Already selected');
            } else {
                this.checkValue.click();
            }
        });

关于调用 this.selectCheckBox(this.sha1hash_checkbox); 之类的函数 收到错误消息“'elementfinder' 类型的参数不可分配给 'boolean' 类型的参数”

【问题讨论】:

    标签: typescript protractor


    【解决方案1】:

    isSelected() 适用于 ElementFinder 而不是 boolean。 你应该这样做:

    selectCheckbox(): void {
      el:ElementFinder =  element(by.id('md5hash'));
      el.isSelected().then(selected => {
        if (selected) {
            console.log(el + ': Is Already selected');
        } else {
            el.click();
        }
      });
    }
    

    【讨论】:

      【解决方案2】:

      selectCheckBox() 期望接受一个 Web 元素,因此您应该将参数类型声明为 ElementFinder,而不是 boolean。应该是这样的:

      selectCheckBox(targetElement: ElementFinder) {
        // only when check box is not selected, then click it
        targetElement.isSelected().then(selected => {
          if (selected) {
            console.log('Already selected');
          } else {
            targetElement.click();
          }
        });
      }
      
      
      md5hash_checkbox = element(by.id('md5hash'));;
      selectCheckBox(md5hash_checkbox);
      

      【讨论】:

        猜你喜欢
        • 2021-11-23
        • 2021-10-18
        • 2019-10-26
        • 1970-01-01
        • 2019-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-05
        相关资源
        最近更新 更多