2014-09-11 1 views
0

j'ai un SelectList:Watin ne .Modification feu() événement manuellement

<select style="ime-mode: auto; background-color: rgb(255, 255, 255);" id="il_worksheettype" class="ms-crm-SelectBox" tabIndex="1100" name="il_worksheettype" attrPriv="7" attrName="il_worksheettype" req="2" defaultSelected="null"> 
<option title="" selected="selected" value=""></option> 
<option title="Underwriting" value="102790001">Underwriting</option> 
<option title="Claim" value="102790000">Claim</option></select> 

et j'ai le code:

worksheetTypes.Option("Claim").Select(); 
ProtectionInfoTab.Frame(Find.ById("contentIFrame")).Eval("$('#il_worksheettype').change();"); 

Le problème est que, pour une raison quelconque, il juste ne courir le javascript ou du moins c'est l'impression que je reçois. Lorsque ce code ne contient aucune exception, il ne semble pas faire quoi que ce soit quand il devrait faire apparaître des options sur une autre liste de sélection.

des idées?

Répondre

1

Utilisation RunScript au lieu de Eval. Eval semble lier le changement, mais ne déclenche pas le changement. J'ai travaillé pour moi, où pk est la référence de l'élément.

Element pk = BrowserInstance.TextField("password");  
pk.DomContainer.RunScript("$('#" + pk.Id + "').change();");  
0

Dans votre instruction Eval, votre fonction de modification est utilisée pour lier un événement plutôt que d'en déclencher un. Pour déclencher un événement, utilisez les éléments suivants:

$ ('# il_worksheettype'). Trigger ('change');

http://api.jquery.com/change/

+0

Cela ne semble pas fonctionner? – Ben

+0

Quelles erreurs obtenez-vous dans votre fenêtre de console JavaScript? –

+0

Comment puis-je faire cela dans IE? – Ben

0

Vous pouvez utiliser le code ci-dessous pour IE pour déclencher l'événement de changement après avoir sélectionné une option dans la liste de sélection.

browserInstance.RunScript("$('#il_worksheettype').change()"); 

Pour Firefox

browserInstance.RunScript("window.$('#il_worksheettype').change()");