Селен + JavaScript + Инфраструктура WebDateChooser - PullRequest
0 голосов
/ 19 февраля 2010

Я работаю над тестами Selenium для одной из наших страниц, на которой установлен Infragistics WebDateChooser. Мне потребовалось некоторое время, чтобы добраться туда, где я мог установить поле даты из теста Selenium, но я наконец-то получил кое-что для работы:

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

Код работает, но выдает ошибку в IDE Selenium:

[ошибка] Неожиданное исключение: сообщение -> eval (соответствует [1]) не определено, fileName -> chrome: //selenium-ide/content/selenium/scripts/selenium-api.js, lineNumber -> 2464, stack -> ("javascript {this.browserbot.getUserWindow (). igdrp_getComboById ('ctl00_MainBody_ctl00_fdosDatePicker'). setValue (new Date ('2005-05-31'))}") @chrome: // selenium-ide / selenium / scripts / selenium-api.js: 2464 () @chrome: //selenium-ide/content/selenium/scripts/selenium-executionloop.js: 109 () @chrome: // selenium-ide / content / selenium / scripts / selenium-executeloop.js: 78 continueCurrentTest () @chrome: //selenium-ide/content/selenium-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/globalOvercommand.j: ([объект XULCommandEvent]) @chrome: //selenium-ide/content/selenium-ide.xul: 1, имя -> TypeError

Я пробовал несколько разных команд (waitForEval, storeEval и т. Д.), Но все они выдают одну и ту же ошибку.

Какие-нибудь предложения для других вещей, которые я должен попробовать?

Спасибо, Matt

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Хотя ваше решение работает, оно не взаимодействует с WebDateChooser, как пользователь. Это может быть тем, что вам нужно, однако, после быстрого ознакомления с демонстрационным примером с примером http://samples.infragistics.com/2007.3/webfeaturebrowser/WebDateChooser/Grid/webform1.aspx, я смог собрать простой скрипт для взаимодействия с 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

Эти локаторы используют идентификаторы, которые выглядят как динамические и ненадежные. Если это так, возможно, вы захотите взглянуть на более надежные локаторы XPath или CSS.

0 голосов
/ 22 февраля 2010

Наконец наткнулся на это.Хотя сейчас я использую разные значения для Command и Value, он действительно удалял синтаксис javascript {...} из Target, который помог мне справиться с ошибкой.

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

И вот другой подход: Этот использует fireEvent для запуска события onblur после ввода текста в поле.Я нашел это с помощью Как я научился любить Selenium's fireEvent

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

Имея несколько вариантов, чтобы сделать все это хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...