2010-02-19 2 views
0

Infragistics WebDateChooser가있는 페이지 중 하나에서 Selenium 테스트를하고 있습니다. 내가 셀레늄 테스트에서 날짜 필드를 설정할 수 있습니다 곳에 도착하는 데에 시간이 좀 걸렸습니다,하지만 난 결국 일을 뭔가있어 :Selenium + JavaScript + Infragistics WebDateChooser

waitForEval | javascript{this.browserbot.getUserWindow().igdrp_getComboById('ctl00_MainBody_ctl00_fdosDatePicker').setValue(new Date('2005-05-31'))} | dump 

코드가 작동하지만 셀레늄 IDE에서 오류가 발생합니다 :

[오류] 예기치 않은 예외 : message -> eval (match [1])이 정의되지 않았습니다. fileName -> chrome : //selenium-ide/content/selenium/scripts/selenium-api.js, lineNumber -> 2464 , 스택 -> (자바 스크립트 {this.browserbot.getUserWindow(). igdrp_getComboById ('ctl00_MainBody_ctl00_fdosDatePicker'). setValue (새 날짜 ('2005-05-31'))} "") @chrome : // 셀레늄 - ide/content /selenium/scripts/selenium-api.js:2464() @chrome : // 셀렌 - ide/content/셀레늄 /scripts/selenium-executionloop.js:109() @chrome : // 셀레늄 -/콘텐트/셀레늄/스크립트/셀레늄 - 실행 루프 : runner.js : 335 (true) @chrome : //selenium-ide/content/debugger.js : 165 ("cmd_selenium_step") @chrome : //selenium-ide/content/editor.js : 233 doCommand ("cmd_selenium_step") @ : 0 goDoCommand ("cmd_selenium_step") @chrome : //global/content/globalOverlay.js : 96 oncommand ([객체 XULCommandEvent]) @chrome : //selenium-ide/content/selenium-ide.xul : 1, 이름 -> TypeError

나는 몇 가지 명령 (waitForEval, storeEval 등)을 시도했지만 모두 동일한 오류가 발생합니다.

내가 시도해야하는 다른 제안 사항이 있습니까?

덕분에, 매트

답변

0

마지막으로 그것을 발견. Command와 Value에 다른 값을 사용하고 있지만 실제로는 JavaScript에서 {...} 구문을 제거하여 오류가 발생했습니다. 여기

getEval | this.browserbot.getUserWindow().igdrp_getComboById('ctl00_MainBody_ctl00_tdosDatePicker').setValue(new Date('2009-05-31')) | 

그리고

다른 접근 방식입니다 : 이 하나가 필드에 텍스트를 입력 한 후 발사하기 위해 onblur 이벤트를 얻는대로 FireEvent를 사용합니다. 나는이 모든 좋은해야 할 여러 옵션을 갖는 How I learned to love Selenium’s fireEvent

type | ctl00_MainBody_ctl00_fdosDatePicker_input | 01/01/2010 
fireEvent | ctl00_MainBody_ctl00_fdosDatePicker_input | blur 

를 통해 그것을 발견했다.

1

솔루션은 작동하지만 WebDateChooser는 사용자와 상호 작용하지 않습니다. 것으로,

clickAt  | id=UltraWebGrid1_rc_0_5 
waitForVisible | id=WebDateChooser1_img 
clickAt  | id=WebDateChooser1_img 
waitForVisible | id=WebDateChooser1_DrpPnl_Calendar1_504 
select   | id=WebDateChooser1_DrpPnl_Calendar1_504 | label=July 
select   | id=WebDateChooser1_DrpPnl_Calendar1_506 | label=1978 
click   | id=WebDateChooser1_DrpPnl_Calendar1_d13 

이 로케이터는 ID를 사용하는이 그러나 나는 WebDateChooser와 상호 작용하기 위해 함께 간단한 스크립트를 넣을 수 있었다 http://samples.infragistics.com/2007.3/webfeaturebrowser/WebDateChooser/Grid/webform1.aspx의 예와 데모에 잠깐 모습을 가진 후, 원하는 수 있습니다 역동적이고 신뢰할 수없는 것처럼 보입니다. 그렇다면 좀 더 안정적인 XPath 또는 CSS 로케이터에 대해 살펴볼 수 있습니다.

+0

감사합니다. Dave! 그렇습니다. 실제 제어 기능을 갖춘 UX를보다 정확하게 표현할 수 있습니다. Selenium을 시작하면서 검증 툴을 찾고 있기 때문에, 나는 현장에 무언가를 가져 가서 검증을 통과하는 데 주로 집중했습니다. 예, 아름다운 ID는 ASP.NET WebForms의 장점 중 하나입니다. – mattsmith321