首页 > 解决方案 > 当比较计数和元素值不起作用时?

问题描述

这是我的代码:

element.all(by.repeater("el in leaveApproved | orderBy:'Applied_Date' track by $index"))
  .count()
  .then(function(str){
     element(by.linkText('Dashboard')).click();
     browser.sleep(500);
     expect(element(by.xpath(
            "//*[@id='divDashboardAppCtl']/div[2]/div[2]/div[1]/div/div[2]/h1"))
       .getText()).toBe(str);
});

当我运行时,我得到了失败:登录页面应该检查请求待处理留言的计数:

[31m 预计 '37' 为 37。[0m 堆栈:错误:在 E:\Selenium\Users\Rafeeq\Proc_wfm\spec.js:119:108 在 ManagedPromise.invokeCallback_ 的预期失败(E:\Selenium\Users\Rafeeq \Proc_wfm\node_modules\selenium-webdriver\lib\promise.js:1376:14) 在 TaskQueue.execute_ (E:\Selenium\Users\Rafeeq\Proc_wfm\node_modules\selenium-webdriver\lib\promise.js:3084:14 ) 在 TaskQueue.executeNext_ (E:\Selenium\Users\Rafeeq\Proc_wfm\node_modules\selenium-webdriver\lib\promise.js:3067:27) 在 asyncRun (E:\Selenium\Users\Rafeeq\Proc_wfm\node_modules\selenium -webdriver\lib\promise.js:2927:27) 在 E:\Selenium\Users\Rafeeq\Proc_wfm\node_modules\selenium-webdriver\lib\promise.js:668:7 在 process._tickCallback (internal/process/next_tick .js:68:7)

标签: protractor

解决方案


element.all().count()返回一个Number,但getText()返回一个String

expect().toBe()将比较数据的类型和值,相当于===

您需要将数字转换为字符串。

expect(element(by.xpath(
            "//*[@id='divDashboardAppCtl']/div[2]/div[2]/div[1]/div/div[2]/h1"))
       .getText()).toBe(str+'');

推荐阅读