Что такое хороший способ взаимодействия с элементами iframe с помощью Selenium IDE? - PullRequest
0 голосов
/ 08 июня 2010

Я хочу протестировать веб-приложение, которое использует FCKeditor в Selenium IDE . К сожалению, FCKeditor использует фреймы, которые сложно протестировать в Selenium IDE. По сути, все, что я хочу сделать, это установить значение области редактирования FCKeditor и прочитать его позже, чтобы увидеть, было ли значение передано правильно.

Я полагаю, что этот вопрос двоякий: во-первых, есть ли у кого-нибудь решение этой проблемы, специфичное для FCKeditor? а во-вторых, кто-нибудь знает хороший способ реализации пользовательских функций Javascript, которые можно использовать в ваших тестах в Selenium IDE?

1 Ответ

1 голос
/ 09 июня 2010

Я придумала решение.Он включает в себя метод storeEval, переменную storedVars и анонимные функции Selenium IDE.Он также использует свойство activeElement iframe s.

По сути, я вызываю метод storeEval с javascript, чтобы установить определенный элемент storedVars для функции, которую я буду использоватьпозже в качестве аргумента.Для примера FCKeditor аргументом будет:

storedVars["setFCKeditorField"] = function (fieldName, value) {var iframe = this.browserbot.findElement("id="+fieldName+"___Frame"); var outerDocument = iframe.contentDocument; var innerDocument = outerDocument.activeElement.contentDocument; var textField = innerDocument.activeElement; textField.innerHTML = value;}

Я специально отформатировал его так, потому что именно так он будет отображаться в Selenium IDE, и я явно не идеален.

Затем, позже, когда я на самом деле хочу установить значение поля FCKeditor, я снова вызываю storeEval с javascript для вызова функции в качестве аргумента, например так:

storedVars["setFCKeditorField"].call(this, "SU_ats_subscription_configuration_model[subscription_reminder_message]", "Subscription Expiring Message.<br/>");

Это работает, но я надеюсь, что есть лучший способ.Будет ли Selenium RC сделать это легко?

...