Проверка, установлен ли флажок, всегда возвращает true - PullRequest
2 голосов
/ 07 июля 2019

В WebdriverIO мне удалось установить, был ли установлен тот же флажок с помощью:

return $(selector).isSelected()

<form action="/cases/enableSubcases" id="CompanyInfoSettingsForm" method="post" accept-charset="utf-8">
  <div style="display:none;"><input type="hidden" name="_method" value="POST"><input type="hidden" name="data[_Token][key]" value="8f8c3c04cd70aa8207bd045382f4cc5a10d54ff6" id="Token436554541"></div>
  <div class="col-xs-6 standard-checkbox"><input type="hidden" name="data[CompanyInfo][subcases_enabled]" id="CompanyInfoSubcasesEnabled_" value="0"><input type="checkbox" name="data[CompanyInfo][subcases_enabled]" value="1" id="CompanyInfoSubcasesEnabled"><label for="CompanyInfoSubcasesEnabled">Enable subcases</label></div>
  <input type="submit" value="Add" data-target="" data-ajax-events="{}" class="hidden btn btn-blue btn-in-form save ajax ajax-submit" id="submitSubcasesActivate">
  <div style="display:none;"><input type="hidden" name="data[_Token][fields]" value="a16a56244433cb631f47cf444d68fee6f6593663%3A" id="TokenFields1306079178"><input type="hidden" name="data[_Token][unlocked]" value="" id="TokenUnlocked441950973"></div>
</form>

Здесь вы можете увидеть, что произойдет, если я проверю код: https://photos.app.goo.gl/XnXgCufNxPF2YqoZ6

Я пытаюсь это:

async areSubcasesEnabled() {
  await t
    .navigateTo(urlFor('?/cases/settings'))

  if(this.elements.subcases.checked)
    return true
  else 
    return false
}

и всегда возвращает true.

1 Ответ

4 голосов
/ 08 июля 2019

Selector возвращает Promise с разрешением DomNodeSnaphot, которое содержит свойство checked - https://devexpress.github.io/testcafe/documentation/test-api/selecting-page-elements/dom-node-state.html#members-specific-to-element-nodes.

Итак, вам нужно добавить ключевое слово await, чтобы получить значение Promise.

async areSubcasesEnabled() {
  await t
    .navigateTo(urlFor('?/cases/settings'))

  return await this.elements.subcases.checked;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...