2013-03-06 2 views
0

텍스트를 입력하려고하는데 Watin이 올바른 텍스트 상자를 찾을 수 없습니다. 나는 그것이 메인 페이지가 아니라 프레임에 있기 때문에 이것이라고 생각합니다. 사용중인 URL이 https://customerservice.southerncompany.com/NonSecure/LoginFrames.aspxWatin을 통해 특정 프레임에 액세스하십시오.

이 특정 사이트에 대한 해결책을 찾았지만 다른 사이트의 프레임을 가져와야합니다. 다음은이 사이트에 사용하는 것을 시도하고있는 작업은 다음과 같습니다

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

당신이이 텍스트 상자에 대한 올바른 이름입니다 확신을 사용하여 프레임을 얻을? 컨트롤이 심지어 DOM에 나열되어 있습니까? 당신이 발견 한 해결 방법은 무엇입니까? TypeText ("FakeUsername"); ' – Brian

+0

해결 방법은 https://webauth.southernco.com/login.aspx?WL_Type=E&WL_AppId=로 이동하는 것입니다. broswer.Image (FindByName ("ctl00_MainContent_txtUserName")) OCC & WL_ReturnMethod = FV & WL_Expire = 1 & WL_ReturnUrl = https % 3a % 2f % 2fcustomerservice.southerncompany.com % 2fNonSecure % 2flogin.aspx % 3fredirect % 3dY 이것은 기본적으로 자체 페이지로 원하는 프레임입니다. –

+0

나는 그것이 현명하다는 것을 모른다. 언제든지 AttachTo() 메서드를 사용해야 할 것입니까? – Brian

답변

2

단순히이 명령

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

페이지의 마크 업을 검사했는데 프레임에 대한 참조가 표시되지 않았습니다. – Brian

+0

다음을 찾으십시오. alonp

+1

내 코멘트를 남긴 직후에 발견했습니다. 영어는 오늘 내 친구가 아닙니다 :) – Brian

관련 문제