Вызов функции в файле JavaScript с помощью Selenium IDE - PullRequest
3 голосов
/ 10 января 2012

Итак, я запускаю эти тесты Selenium IDE на сайте, над которым я работаю. Все в самих тестах работает нормально, за исключением того, что я хотел бы сделать небольшую очистку, как только я закончу. На моем сайте, основанном на MVC3 Razor, у меня есть файл JavaScript с функцией, которая получает JsonResult от моего контроллера. Этот контроллер выполняет очистку базы данных, которую Selenium IDE в противном случае не может обработать.

Однако мне трудно найти какую-либо документацию о том, как это сделать. Я знаю, что могу сделать JavaScript{ myJavascriptGoesHere } одним из значений для строки в тесте, но я не могу найти способ, чтобы сказать ей, чтобы найти мою функцию очистки.

Возможно ли даже для Selenium IDE делать подобные вещи?

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

Спасибо!

Ответы [ 3 ]

1 голос
/ 10 июля 2012

Если вы хотите выполнить свою собственную функцию JavaScript, которая существует на вашей тестовой странице из Selenium IDE, вам необходимо убедиться, что вы обращаетесь к ней через объект окна.Если вы посмотрите на ссылку для storeEval, например, она говорит:

Обратите внимание, что по умолчанию фрагмент будет выполняться в контексте самого объекта "selenium", так что это будет ссылаться нак объекту Селен.Используйте окно для ссылки на окно вашего приложения, например, window.document.getElementById ('foo')

Так что если у вас есть собственная функция, например myFunc().Вы должны ссылаться на него как window.myFunc().

. Это может быть очень удобно для выполнения проверки на стороне клиента без фактической отправки формы, например, если вы хотите проверить множество недопустимых и допустимых значений полей формы.

Если вы используете runScript, это уже должно выполняться в контексте окна.

0 голосов
/ 26 февраля 2019

На самом деле, чтобы получить доступ к пространству javascript вашей страницы, вам нужно получить реальное окно вашей страницы: this.browserbot.getUserWindow ()

См. Этот оператор, чтобы получить точку входа jQuery на вашей странице (если онаимеет JQuery конечно ^^)

https://stackoverflow.com/a/54887281/2143734

0 голосов
/ 12 января 2012

Это работает для меня.

    IJavaScriptExecutor js = driver as IJavaScriptExecutor;
    string title = (string)js.ExecuteScript("myJavascriptGoesHere");

Прежде чем использовать его здесь, убедитесь, что ваш javascript работает!

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