1

Я пытаюсь проверить свою учетную запись hotmail с помощью selenium webdriver 3.0. Я установил, что моя учетная запись запрашивает двухстороннюю аутентификацию, что означает Ineed, чтобы ввести последние 4 цифры моего мобильного номера, а затем отправить мне сообщение. Затем я должен ввести этот код, чтобы открыть мою учетную запись электронной почты. Он работал хорошо со мной, когда я использовал неявное, ждал 60 секунд, пока не получу код, а затем введите его вручную, и поэтому тест продолжит мою страницу электронной почты >> все работает нормально.Selenium webdriver 3.0 + java Подождите, пока строка не будет введена

BUT мой вопрос в том, есть ли способ сделать тест подождать, пока я не введу код, а не жду 60 секунд?! - это то, что допустимо вводить некоторые вещи вручную при использовании selenium webdriver? thx для оказания помощи. Показать меньше

+0

В целом, это не очень хорошая практика, чтобы попробовать и протестировать механизм входа, который * не * ваш SUT (система под тестированием). Причинами этого, как вы уже встречали, являются различные механизмы проверки, такие как CAPTHA/SMS/коды и т. Д., Которые вы не можете контролировать. С другой стороны, в среде тестирования вы можете высмеивать/вводить что-то более упрощенное. – Stas

ответ

1

является допустимым для ввода некоторых вещей вручную при использовании селена webdriver?

Да, потому что эта вещь сделана для остановки робота активность так же, как Captcha процесс ввода кода. Таким образом, в этом случае допустимо вводить текст вручную после прочтения текста из почты при использовании селена.

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

Есть ли способ сделать тест, подождите, пока я не введу код, а не жду 60 секунд?

Да, к достижению этой цели вам нужно создать свой собственный ExpectedConditions с WebDriverWait, который будет ждать, пока находится текстовое поле не имеет значение, большее или равное 4 символа или другое подходящее условие, которое вы хотите, как показано ниже: -

//Initialize WebDriverWait first which will wait maximum 60 seconds 
WebDriverWai wait = WebDriverWai(driver, 60); 

//Create suitable locator to locate textbox element eg. with xpath locator 
By byObject = By.xpath("enter here textbox xpath"); 

//This condition will wait until text box has value greater or equal 4 character 
wait.until(new ExpectedCondition<Boolean>() { 
       public Boolean apply(WebDriver d) { 
        return (d.findElement(byObject).getAttribute ("value").length() >= 4) 
       } 
      }); 
+0

Большое спасибо за помощь – AbedElrahman

+0

Ручное вмешательство в автоматизированные тесты приемлемо? если есть специальная тестовая няня, возможно ... – Andrejs

+0

Это зависит от ситуации на самом деле. По мне. Если вы занимаетесь автоматизацией, нет ничего, что могло бы прибегнуть к ручному вмешательству, но если приложение предотвращает активность робота на определенных этапах, то что вы можете сделать? ? –

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