2016-04-10 6 views
0

ich ein Event-Handler wie so definiert haben:Unable Eingabeereignis auszulösen WebDriver mit

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

    // Do some other dynamic stuff 
}); 

Wo # Client-input-Street1 ein einfaches Eingabeelement ist:

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

ich nicht in der Lage gewesen, um dieses "Eingabe" -Ereignis mit WebDriver auszulösen. Ich habe alle Arten von Techniken versucht, wie Client-input-Street1 Textbox auf die # Tabbing, dann send_keys, dann in einer anderen Form Kontrolle Tabbing als here beschrieben:

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) 

Ich habe versucht, den Wert explizit Einstellung mit Javascript:

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

Ich habe versucht, klicken Sie auf das Textfeld, dann send_keys, dann klicken Sie auf ein anderes Element.

Ich render etwas Inhalt in das DOM innerhalb der 'Eingabe' Handler, und mein Selenium-Test muss einige Werte in diesem dynamischen Inhalt überprüfen. Aber ich bin immer ein Timeout wenn für diese Inhalte zu laden warten:

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

Nichts hat bisher funktioniert. Irgendwelche Ideen würden geschätzt werden.

+0

Haben Sie Ausnahmen? – Andersson

+0

Ja, ich habe die Frage mit der Ausnahme aktualisiert, die ich bekomme. –

+0

Können Sie überprüfen, ob sich Ihr Eingabefeld innerhalb '