2013-03-06 2 views
0

J'essaye d'entrer du texte, mais Watin ne trouve pas la bonne zone de texte. Je pense que c'est parce que c'est dans un cadre, et non sur la page principale. L'URL que j'utilise est https://customerservice.southerncompany.com/NonSecure/LoginFrames.aspxAccéder à un cadre spécifique via Watin

J'ai trouvé une solution de contournement pour ce site particulier, mais j'aurai besoin d'entrer dans des cadres pour d'autres sites. Voici ce que je suis en train d'utiliser sur ce site:

browser.TextField(Find.ById("ctl00_MainContent_txtUsername")).TypeText("FakeUsername"); 
browser.TextField(Find.ById("ctl00_MainContent_txtPassword")).TypeText("FakePassword"); 

browser.Image(Find.ByName("ctl00$MainContent$btnLogin")).Click(); 
+0

Etes-vous sûr est le nom correct pour la zone de texte? Les contrôles sont-ils même listés dans le DOM? Quelle est la solution de rechange que vous avez trouvée pour cela? Avez-vous essayé d'utiliser 'broswer.Image (FindByName (" ctl00_MainContent_txtUserName ")). TypeText (" FakeUsername ");' – Brian

+0

ma solution de contournement est d'aller à https://webauth.southernco.com/login.aspx?WL_Type=F&WL_AppId= OCC & WL_ReturnMethod = FV & WL_Expire = 1 & WL_ReturnUrl = https% 3a% 2f% 2fcustomerservice.southerncompany.com% 2fNonSecure% 2flogin.aspx% 3fredirect% 3dY, qui est fondamentalement le cadre que je veux comme sa propre page. –

+0

Je ne sais pas si c'est sage. À tout moment, vous devrez utiliser la méthode AttachTo()? – Brian

Répondre

2

obtenir simplement le cadre en utilisant cette commande

Frame frame = browser.Frame(Find.ByClass("yourClassName")); //or by id or name... 
frame.TextField(Find.ById("ctl00_MainContent_txtUsername")).TypeText("FakeUsername"); 
//and etc... 
+0

J'ai inspecté le balisage de la page, je n'ai vu aucune référence à un cadre. – Brian

+0

Recherchez: alonp

+1

Je l'ai trouvé juste après avoir laissé mon commentaire. L'anglais n'est pas mon ami aujourd'hui :) – Brian

Questions connexes