2016-04-10 2 views
0

Я обработчик события определяется следующим образом:Невозможно вызвать события ввода с помощью WebDriver

$('#client-input-street1').on('input', function() { 
    console.debug('street1 text changed'); 

    // Do some other dynamic stuff 
}); 

Где # клиент-вход-Street1 простой элемент ввода:

<input id="client-input-street1" type="text" value=""> 

я не смог для запуска этого события «ввода» с помощью WebDriver. Я попробовал всевозможные методы, такие, как табулируя к # клиент-вход-Street1 текстовое поле, а затем send_keys, то табулируя к другому элементу формы, как описано here:

street1_input = self.driver.find_element_by_id('client-input-street1') 
street1_input.send_keys('3229 NW Pittock Dr') 
street1_input.send_keys(Keys.TAB) 

Я попытался явно устанавливая значение с помощью Javascript:

self.driver.execute_script("document.getElementById('client-input-street1').setAttribute('value', '3229 NW Pittock Dr')") 

Я попытался щелкнуть текстовое поле, затем send_keys, а затем щелкнуть по другому элементу.

Я передаю некоторый контент в DOM внутри обработчика ввода, и мой тест Selenium должен проверить некоторые значения внутри этого динамического содержимого. Но я получаю TimeoutException при ожидании этого контента для загрузки:

ec = EC.presence_of_element_located((By.ID, 'client-address-suggestions-list')) 
    address_suggestions_list = wait.until(ec) 

Ничто не работает до сих пор. Любые идеи были бы хорошы.

+0

Есть ли исключения? – Andersson

+0

Да, я обновил вопрос, за исключением того, что получаю. –

+0

Вы можете проверить, находится ли ваше поле ввода внутри '