Один скрипт, который у нас есть, запрашивает у пользователя несколько значений посредством последовательных вызовов JavaScript для window.prompt (). Selenium записывает это действие, как текст подсказки, так и введенные мною значения, но, похоже, оно не может воспроизвести его должным образом. Он «преуспевает» в том, что никаких ошибок не возникает, но только первое значение подсказки фактически возвращает его в мой сценарий. Кроме того, упорядоченные записи Selenium по умолчанию возвращают значение second на месте первого, а остальные остаются пустыми:
# [info] Executing: |answerOnNextPrompt | TEXT1 | |
# [info] Executing: |select | id | label=mychoice |
# [info] Executing: |answerOnNextPrompt | TEXT2 | |
# [info] Executing: |assertPrompt | Please enter a value for q1 | |
# [info] Executing: |answerOnNextPrompt | TEXT3 | |
# [info] Executing: |assertPrompt | Please enter a value for q2 | |
# [info] Executing: |answerOnNextPrompt | TEXT4 | |
# [info] Executing: |assertPrompt | Please enter a value for q3 | |
# [info] Executing: |assertPrompt | Please enter a value for q4 | |
Я переставил это в то, что мне кажется более разумным:
# [info] Executing: |answerOnNextPrompt | TEXT1 | |
# [info] Executing: |select | id | label=mychoice |
# [info] Executing: |assertPrompt | Please enter a value for q1 | |
# [info] Executing: |answerOnNextPrompt | TEXT2 | |
# [info] Executing: |assertPrompt | Please enter a value for q2 | |
# [info] Executing: |answerOnNextPrompt | TEXT3 | |
# [info] Executing: |assertPrompt | Please enter a value for q3 | |
# [info] Executing: |answerOnNextPrompt | TEXT4 | |
# [info] Executing: |assertPrompt | Please enter a value for q4 | |
После этого я получаю TEXT1 в качестве первого значения, но остальное остается пустым.
Я также пробовал waitForPrompt вместо каждого assertPrompt, но без кубиков.
Я предполагаю, что Selenium не может справиться с этой ситуацией, потому что answerOnNextPrompt, похоже, должен предшествовать действию, которое вызывает приглашение, но является действием, которое запускает следующее приглашение, поэтому после первый, вызванный select, сделать это невозможно, потому что они не складываются.
Хотелось бы, чтобы меня ошиблись ... какие-нибудь идеи?
(Если нет, я мог бы сообщить об этом как об ошибке / что-то, что они должны изменить в API, возможно, комбинируя answerOnNextPrompt с assertPrompt: он мог бы просто принять необязательный аргумент с тем, как на приглашение следует ответить.)
Платформа - Selenium IDE 1.0.2 на Firefox 3.5.3 на win32.