Транспортир - Как утверждать, что правильный вариант выбран из выпадающего списка - PullRequest
0 голосов
/ 26 апреля 2019

В моем проекте у меня есть выпадающий список, из которого я выбираю опцию на основе текста. Моя цель состоит в том, чтобы проверить, как только опция выбрана, текст, который отображается в выпадающем списке (как на картинке ниже), соответствует моему входному значению или нет.

enter image description here

Мой код выглядит следующим образом:

this.selectDropdownByText = async function(container, inputText){

    await helpers.clickWhenClickable(element(by.cssContainingText('option',inputText)), 5000, "the selected option is not clickable");
    await helpers.clickWhenClickable(CL.Save_Button_BottomPanel,10000);
    await sync.waitUntilElementVisible(await CL.Save_success_Massage, 10000);
    await sync.waitUntilElementInVisible(await CL.Save_success_Massage, 10000);
    await helpers.waitForElementVisibility(container);

 return await container.getSelection().getText();

В кодах нет проблем, пока мы не достигнем оператора return. Однако оператор return возвращает ошибку, когда я пытаюсь container.getSelection().getText(). Ошибка TypeError: container.getSelection is not a function С другой стороны, если я попытаюсь container.getText(), он возвращает все параметры из выпадающего списка.

Есть ли способ сделать это?

HTML-код:

<select _ngcontent-c11="" class="form-control ng-touched ng-dirty ng-valid" formcontrolname="dcbsId"
id="directClassBased">
<!---->
<!---->
<option _ngcontent-c11="" value="1: 54756697-0CC6-45A2-B857-E96E132D46B0" class="ng-star-inserted">HS Com A</option>
<option _ngcontent-c11="" value="2: FA377EE4-66C4-46ED-992D-8D17A6756586" class="ng-star-inserted">HS Com B</option>
<option _ngcontent-c11="" value="3: 7BA46C9C-6150-4E5D-8FD0-270D6387D772" class="ng-star-inserted">HS Com C</option>
.....
..... 
<option _ngcontent-c11="" value="12: 08FD1A93-6507-4ABB-9420-DD2E62F9562C" class="ng-star-inserted">CL TRC</option>

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Я нашел ответ здесь .

Решение:

expect(element(by.id('my_id')).$('option:checked').getText()).toEqual('xxxxxx')

и в моем случае реализация выглядит так:

return await container.$('option:checked').getText();
0 голосов
/ 26 апреля 2019

Попробуйте приведенный ниже оператор return в своем методе после выбора параметра из раскрывающегося списка.

const container = elemnet(by.css('#directClassBased'));

return await container.getAtrribute('value');

Если вышеизложенное не поможет поделиться вашим HTML-кодом раскрывающегося списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...