Не полностью заполняются поля для авторизации пользователя(webium+behave)

webium
jbehave
Теги: #<Tag:0x00007fedc108e6a0> #<Tag:0x00007fedc108e218>

#1
user = Find(value=u"//input[@name='user']")
password = Find(value=u"//input[@name='password']")
submit = Find(value=u"//a[text()='Войти']")

def _login(self, user, password):
    for c in user:
        self.user.send_keys(c)
    for c in password:
        self.password.send_keys(c)
   self.submit.click()
   return True

def login(self, user, password):
    with wait_action(lambda: self._login(user, password)):
        return FooPage()

При передаче, например, параметров: user = "test@mail.com" в поле user может быть введено только tst@mail.com или est@mail.com, если использовать

self.user.send_keys(user)

то может ничего не ввестись, хотя видно, что курсор в поле устанавливался.
Firefox 41.0.2, Selenium - 2.48


(Igor) #2

webium и behave к этой проблеме не имеют, похоже, отношения.

Код ниже должен работать:

self.user.send_keys(user)
self.password.send_keys(password)

Возможно, на input подвшен какой-то javascript, который срабатывает по нажатию клавиш и не "успевает", так как webdriver слишком быстро печатает.


#3

Да, я тоже решил, что webium и behave тут не при чем, хотя javascript навешан только на клик кнопки "Войти". В итоге решил проблему путем ввода через javascript.


(Igor) #4

@dt_astronaut попробуйте сделать общедоступный пример и выложить в баги Webdriver'a.


#5

Тогда отправлю пример и ошибку разработчикам WebDriver, спасибо.