【问题标题】:Testing whether element is disabled in Protractor测试元素是否在量角器中被禁用
【发布时间】:2019-01-28 18:26:41
【问题描述】:

我们有一些应在应用程序上禁用的复选框。下面是html sn-p:

<label _ngcontent-c17="">
<input _ngcontent-c17="" checked="" disabled="" type="checkbox" value="">
    <span _ngcontent-c17="" class="ml-2"> Speech</span>
</label>

在应用程序上,我看到复选框已选中和禁用。

下面是我的代码 sn-p 来测试“语音”复选框是否被选中和禁用:

 it(' Should validate the checked list on "Not Started" Page ', function () {
  expect(EC.elementToBeSelected(G.Speech_Checkbox_on_Services)).toBeTruthy();
  expect(G.Speech_Checkbox_on_Services.isEnabled()).toBeFalsy();
  expect(G.Speech_Checkbox_on_Services.getAttribute('disabled')).toBeTruthy();
  });

代码的最后两行应该检查复选框是否被禁用。但是,当我运行它时,两条线都失败了。我该如何解决这个问题?

Expected true to be falsy.
Expected null to be truthy.

日志:

Error: Failed expectation
at UserContext.<anonymous> (C:\ESY_testing-and-deployment\Non_Test_Speks\TestBed.js:57:57)
at C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:112:25
at new ManagedPromise (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1077:7)
at ControlFlow.promise (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2505:12)
at schedulerExecute (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:95:18)
at TaskQueue.execute_ (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3084:14)
at TaskQueue.executeNext_ (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3067:27)
at asyncRun (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2974:25)
at C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:668:7

Error: Failed expectation
at UserContext.<anonymous> (C:\ESY_testing-and-deployment\Non_Test_Speks\TestBed.js:58:70)
at C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:112:25
at new ManagedPromise (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1077:7)
at ControlFlow.promise (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2505:12)
at schedulerExecute (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:95:18)
at TaskQueue.execute_ (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3084:14)
at TaskQueue.executeNext_ (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3067:27)
at asyncRun (C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2974:25)
at C:\Users\Nasim Patwary\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:668:7

【问题讨论】:

标签: javascript angularjs jasmine protractor


【解决方案1】:

如果要检查复选框是否被选中和禁用

expect(G.Speech_Checkbox_on_Services.attr('checked')).toBeTruthy();
expect(G.Speech_Checkbox_on_Services.getAttribute('disabled')).toBe(true);

https://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.isEnabled

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    相关资源
    最近更新 更多