Перейти к содержимому

Фотография

Webdriver (C#) + Grid: Некорректно работает SendKeys


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 SANDR

SANDR

    Новый участник

  • Members
  • Pip
  • 47 сообщений
  • Город:Омск

Отправлено 12 июля 2012 - 03:19

Всем привет.

Суть проблемы в следующем:

Например есть такой код (Вход в ЛК на сайте)
driver.FindElement(By.XPath("//td[2]/input")).SendKeys("mymail@domain.ru");
            IWebElement WaitPassword = driver.FindElement(By.XPath("//tr[2]/td[2]/input"));
            driver.FindElement(By.XPath("//tr[2]/td[2]/input")).SendKeys("123456");
Казалось бы что может быть проще, но буквально несколько дней назад (когда обновился до версии 2.24.1) код иногда стал выполняться иначе, а именно, в поле логин мы видим что-то эдакое: m`ym^ail'@domain.ru вместо вполне ожидаемого mymail@domain.ru
Эффект очень неприятный ибо тесты ступорятся, приходится их перезапускать снова и снова пока не проскочит

То есть текст вставляется вперемешку с какими то символами. Откуда они и почему я не понимаю. Кто нибудь сталкивался с подобной проблемой?

P.S. Пробовал перейти на версию чуть ниже - 2.23.0 но результат такой же.
Тесты запускаются через через MbUnit в 4 потока (Grid)
  • 0

#2 SANDR

SANDR

    Новый участник

  • Members
  • Pip
  • 47 сообщений
  • Город:Омск

Отправлено 30 июля 2012 - 03:51

UP
Проблема актуальна. Неужели никто не сталкивался?
  • 0

#3 sawoy

sawoy

    Новый участник

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Alex Savchuk

Отправлено 31 июля 2012 - 20:15

Привет,

с проблемой не сталкивался.
Но судя по тому, что в строке m`ym^ail'@domain.ru символы добавляются, а не заменяются предположу что-то пишут (посылает события) одновременно с selenium.
Какой драйвер используется?
можно подробнее о "Тесты запускаются через через MbUnit в 4 потока (Grid)" ?
Что-то исполняется параллельно с selenium на ноде?
  • 0

#4 SANDR

SANDR

    Новый участник

  • Members
  • Pip
  • 47 сообщений
  • Город:Омск

Отправлено 07 августа 2012 - 10:31

Какой драйвер используется?
можно подробнее о "Тесты запускаются через через MbUnit в 4 потока (Grid)" ?
Что-то исполняется параллельно с selenium на ноде?


Спасибо за ответ.
Версия WebDriver`а 2.24.1
Тесты запускаются через Firefox с помощью фреймворка MBUnit (Gallio Icarus - Version 3.3 build 456)
Для запуска в параллельном режиме используется Grid
Сперва запускается -role hub потом -role wd
Открывается 4 браузера и погнали...

Параллельно ничего больше не запускаю, даже мышку не трогаю, кое где даже ожидание поставил.
Начинает запинаться ближе к концу очереди тестов, где часто вводится один и тот же логин
Как то так...
  • 0

#5 sawoy

sawoy

    Новый участник

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Alex Savchuk

Отправлено 08 августа 2012 - 20:48

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

Также попробуйте включить или отключить nativeEvents: через capability (https://code.google....redCapabilities) или webdriver.enable.native.events
(https://code.google....i/FirefoxDriver).

Кстати, повторяется ли проблема при параллельном запуске не через грид, а локально?

В общем, лучше всего выделить минимальный по размеру кода и используемым библиотекам тест, который повторяет проблему
и создать баг в https://code.google....ium/issues/list
  • 1

#6 SANDR

SANDR

    Новый участник

  • Members
  • Pip
  • 47 сообщений
  • Город:Омск

Отправлено 10 августа 2012 - 03:10

Сделал 16 тестов для быстрого прогона, из 10 прогонов удалось зафиксировать лишь 1 сбой, причем в логе было пусто, строчка ввода была корректной

09:43:53.575 DEBUG [31] org.openqa.selenium.remote.RemoteWebDriver - Executing: sendKeysToElement [8431bd91-67c6-48f3-91a1-9d600fd17839, sendKeysToElement {"id":"{6caffc8c-a2b8-423c-a3d5-eb53ea47ba81}","value":["m","y","_","m","a","i","l","@","d","o","m","a","i","n",".","r","u"]}]

Буду пробовать с nativeEvents

Кстати, как временное решение, перед вводом в поле логин и пароль сделал секундное ожидание Thread.Sleep - этот банальный способ проблемы полностью конечно же не исключает, но стало чуть лучше. На этом решении пока и остановился, разбираться буду после.
Спасибо за помощь.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных