代码之家  ›  专栏  ›  技术社区  ›  nhrcpt

使用部分文本使用量角器控制重定向

  •  0
  • nhrcpt  · 技术社区  · 5 年前

    在我们的项目中,有不同的URL分配给不同的产品类别。如果产品类别为“Cat1”,则单击“编辑”按钮应将用户带到“Cat1”页面,而“Cat2”应将用户带到“Cat2”页面。但是,这些类别位于动态表中,因此我们不能对编辑按钮使用修复引用,我正在尝试使其成为动态的。下面是我的代码段:

    it('should take the user to appropriate page', function () {
        expect(globalVariables.Edit_Button_1.isDisplayed());
    
        // get rows
        var row_1 = globalVariables.tableData_Dashboard.all(by.tagName("tr")).get(1);
    
        // get cell values
        var cells = row_1.all(by.tagName("td"));
    
        var Cetegory = cells.get(3).getText().then(function (GL) {
            // console.log(GL)
            return GL;
        });
    
        globalVariables.Edit_Button_1.click();
    
    
        browser.wait(EC.invisibilityOf(globalVariables.Edit_Button_1), 25000, 'Edit button is not disappearing yet');
    
        if (Cetegory.endsWith('Cat1')){
            expect(browser.getCurrentUrl()).toEndWith("Cat1");
        }
        else {
            expect(browser.getCurrentUrl()).toEndWith("Cat2")
        }
    

    测试失败,日志为“failed:cetegories.endswith不是函数。”。

    如何解决这个问题?

    1 回复  |  直到 5 年前
        1
  •  1
  •   yong    5 年前

    Cetegory 是一个承诺,而不是一根绳子。因此它确实有功能 endsWith . 你需要消耗承诺的最终价值 then() 如下所述。

    Cetegory.then(function(_Cetegory){
        if (_Cetegory.endsWith('Cat1')){
            expect(browser.getCurrentUrl()).toEndWith("Cat1");
        }
        else {
            expect(browser.getCurrentUrl()).toEndWith("Cat2")
        }
    })