Я столкнулся с причудливой проблемой с WebDriver и IE8, и мне любопытно, видел ли кто-нибудь это раньше. В двух словах, у меня есть тест, который проходит через набор полей ввода, вводит текст, а затем нажимает кнопку отправки (ни одна из которых не находится в <form>
). Он фантастически работает в Firefox 3.6, вот так:
Driver.FindElement(By.XPath(domainXpath)).SendKeys("someDomain");
Driver.FindElement(By.XPath(emailXpath)).SendKeys("someEmailAddress");
Driver.FindElement(By.XPath(passwordXpath)).Sendkeys("somePassword");
Но когда я запускаю это в IE8, кажется, что Selenium никогда не меняет поля, хотя кажется, что он правильно находит их через указанный XPath.
Сначала я подумал, что это может быть проблема с xpath-ing (я видел другие со связанными проблемами), но мои SendKeys не дают сбоев с какими-либо ошибками «элемент не найден», и другие элементы, на которые я нажимаю, работает нормально. На самом деле Selenium может найти первое поле в этом списке и сбросить в него весь текст для всех трех Find.
Итак, затем я немного изменил код, например:
Driver.FindElement(By.XPath(domainXpath)).SendKeys("someDomain\t");
Driver.FindElement(By.XPath(emailXpath)).SendKeys("someEmailAddress\t");
Driver.FindElement(By.XPath(passwordXpath)).Sendkeys("somePassword\t");
...и, Вуаля, текст введен правильно.
Как будто IE игнорирует запрос Selenium на переход к следующему полю, несмотря на то, что поле сообщает о наличии.
Кто-нибудь испытал это раньше? Есть ли способ избежать необходимости писать специальный код для IE, просто добавляя вкладки к каждому элементу данных?
Спасибо, Грег.