Не выбирает правильный вариант в раскрывающемся списке - PullRequest
0 голосов
/ 06 апреля 2019

Транспортир выбрать неправильный вариант в раскрывающемся списке.Я должен: выбрать первое раскрывающееся меню, чтобы открыть другое раскрывающееся меню (в моей ситуации: выбрать способ оплаты (первое раскрывающееся меню), чтобы открыть второе раскрывающееся меню - доступные кредитные карты): ВАЖНО: если первое раскрывающееся меню имеет значение по умолчанию - второераскрывающийся список НЕ МОЖЕТ быть виден.

Мой фрагмент кода имел различные варианты:

let paymentDropdown = element(by.name("payment-method"));
let dynamicBlock = $$(".dynamic").first();
let useThisCardButton = element(by.name("do-add-payment-method»));
let paymentConfigBlock = element(by.id("payment-config-container"));

browser.wait(EC.visibilityOf(paymentDropdown), 5000);
$("#payment-method-0 > option:nth-child(2)").click();
browser.wait(EC.visibilityOf(dynamicBlock), 5000);
useThisCardButton.click();
browser.wait(EC.visibilityOf(paymentConfigBlock), 5000);

Итак, я пробовал первый раскрывающийся список:

1. $("#payment-method-0 > option:nth-child(2)").click();
2. element(by.name("payment-method"))
    .all(by.tagName('option'))
    .get(1)
    .click(); 
3. element(by.cssContainingText('option', 'Credit Card')).click();
4. element(by.name("payment-method")).$('[value="cc"]').click();

HTMLэто:

<select name="payment-method" id="payment-method-0" style="display: inline-block;">
<option value="0">Select Payment Method</option>
<option value="cc">Credit Card</option>                    
</select>

И ничего!Я не знаю, как это работает, но 1-й выпадающий имеет значение по умолчанию, а 2-й выпадающий виден!Затем я нажимаю кнопку «Использовать этот метод» и получаю Fail!1 тест из 10 тестов выбирает правильное 1-е значение, поэтому тест пройден.Но остальные 9 испытаний провалились.Зачем?Как это сделать правильно и как быть уверенным, что он выберет правильный вариант?

1 Ответ

1 голос
/ 08 апреля 2019

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

var firstDrop = element(by.css('#payment-method-0'));
browser.wait(EC.elementToBeClickable(firstDrop), 5000);
firstDrop.sendKeys('Credit Card');
browser.wait(EC.visibilityOf(dynamicBlock), 5000);

Надеюсь, это поможет вам

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