Транспортир Получает количество всех элементов в выпадающем списке

#javascript #protractor

#javascript #транспортир

Вопрос:

Я пытаюсь получить количество всех параметров в выпадающем списке. Ниже приведен код, который, я думаю, должен работать, но это не так

 let elements_count  = await $$('#directClassBased > option').count();
console.log('nThe length of the elements are'  await elements_count ' n');
  

Код возвращает количество как 0. Как это можно исправить?

html, связанный с dropbox, выглядит следующим образом:

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><select _ngcontent-c16="" class="form-control ng-dirty ng-valid ng-touched" formcontrolname="dcbsId" id="directClassBased">
        <!---->
        <option _ngcontent-c16="" value="0: C92AB645-9485-4A15-8F49-5412D1639962">Addison</option>
        <option _ngcontent-c16="" value="1: A85A556D-ABCA-44E5-80A5-9AF313E161FC">Dundalk</option>
        ....
        ....
    </select></title>
</head>
<body>

</body>
</html>
  

Комментарии:

1. Проверьте double $$ в своем коде: $$('#directClassBased > option').count()

2. удалите await из await elements_count

3. Действительно ли этот выпадающий список существует на <head> вашем сайте или это опечатка?

4. @Dublind выпадающий список находится не в заголовке .. тег был скопирован, когда я скопировал элемент.

Ответ №1:

Попробуйте следующий способ

 const elements_count  = element.all(by.css('#directClassBased > option'));
const drop = element(by.css('#directClassBased'));

await drop.click(); // to open the drop down 
await browser.sleep(1000);
console.log('nThe length of the elements are'  await elements_count.count()  ' n');