selenium webdriver очищает поля после того, как sendKeys предварительно заполнил их

Веб-страница, которую я тестирую, использует нокаут. На других страницах нашего сайта, которые в настоящее время не используют нокаут, у меня нет такой проблемы. У меня есть сценарий, когда открывается страница, я ввожу различные обязательные поля и нажимаю кнопку «Сохранить». В какой-то момент между тем, когда он вводит значение в последнее текстовое поле, и когда он нажимает кнопку «Сохранить», поля, в которых ранее были значения, очищаются, и поэтому сценарий не может продолжаться. Вот пример кода, который я запускаю:

driver.findElement(By.id("sku")).clear();
driver.findElement(By.id("sku")).sendKeys(itemNo);
driver.findElement(By.id("desktopThankYouPage")).clear();
driver.findElement(By.id("desktopThankYouPage")).sendKeys(downloadUrl);
driver.findElement(By.id("mobileThankYouPage")).clear();
driver.findElement(By.id("mobileThankYouPage")).sendKeys(mobileDownloadUrl);
driver.findElement(By.id("initialPrice")).clear();
driver.findElement(By.id("initialPrice")).sendKeys(initialPrice);
driver.findElement(By.id("submitSiteChanges")).click();

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

Я пробовал использовать Thread.sleep(x); повсюду, чтобы увидеть, решит ли проблема пауза в определенных точках. Я также пытался использовать javascript для ожидания в фоновом режиме любого ajax, который может быть запущен. Также есть неявное ожидание driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS). Ничто из этого, казалось бы, не имело никакого значения.

Я использую Selenium Server версии 2.13, и все мои тесты выполняются в Firefox 8.

Мы будем очень признательны за любую помощь в этом вопросе!

5
задан Geoff Ziebold 29 February 2012 в 19:45
поделиться