1

Я ищу решение, если можно дождаться данных, введенных пользователем в транспортир.Ждите действия пользователя

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

Я попытался использовать подсказку javascript, но я не сделал много, возможно, можно ввести данные в терминал ОС?

Пожалуйста, приведите пример, если это возможно.

ответ

1

Я бы не рекомендовал смешивать автоматическое и ручное управление браузером селена.

Это означает, что вы можете использовать Explicit Waits, чтобы дождаться появления определенных вещей на странице, например. вы можете подождать, пока текст будет присутствовать в тексте input, или элемент, который станет видимым, или заголовок страницы, который будет равен ожидаемому, есть ExpectedConditions, встроенный в protractor, и вы можете легко написать свой собственный Ожидаемые условия ждать. Однако вам придется установить разумный тайм-аут.


В качестве альтернативы, вы можете передавать определенные пользователем параметры через browser.params см:

Пример:

protractor my.conf.js --params.login.user=abc --params.login.password=123 

Затем, вы можете получить доступ к значения в вашем тесте через browser.params:

var login = element(by.id("login")); 
login.sendKeys(browser.params.login.user); 
+0

спасибо за быстрый ответ, но я имею в виду что-то еще, (мне нужно что-то еще, мне не нужно ждать загрузки элемента на странице). Мне нужно ввести некоторые данные во время теста, в зависимости от того, что я вижу на экране. например, во время теста я вижу в консоли: «введите значение», и я ввожу значение и тест перейдите к следующему шагу – tealang

+0

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

+1

@tealang в порядке, я приближаюсь к тому, о чем вы спрашиваете. Не могли бы вы привести пример использования в реальной жизни проблемы? Благодарю. – alecxe

0

Если ваши данные будут находиться в консоли, вы можете получить эти данные с помощью следующих действий:

browser.manage().logs().get('browser').then(function(browserLogs) { 
    // browserLogs is an array which can be filtered by message level 
    browserLogs.forEach(function(log){ 
     if (log.level.value < 900) { // non-error messages 
     console.log(log.message); 
     } 
    }); 
}); 

Тогда как уже упоминалось в других постах, вы можете явно ждать условия для правда, используя driver.wait():

var started = startTestServer(); 
driver.wait(started, 5 * 1000, 
'Server should start within 5 seconds'); 
driver.get(getServerUrl()); 

Или expected conditions, если в ожидании более одного условия, например.

+0

Я думаю, вы не поняли мой вопрос. Я хочу вводить данные самостоятельно. Я имею в виду, что я хочу (во время выполнения теста) создать приглашение (или что-то еще) для ввода данных, и эти данные будут использоваться в тесте. – tealang

+0

Вопрос: Знаете ли вы, какие данные будут до начала теста или во время самого теста? Что вы пытаетесь достичь? Ответы на эти вопросы помогут нам лучше помочь – zalow517

Смежные вопросы