Как ввести функцию JS в мои тесты Selenium? - PullRequest
2 голосов
/ 06 сентября 2011

Я использую клиентский драйвер Selenium 2.5.0 с WebBackedSeleniumDriver.Я хочу внедрить функцию Javascript для использования в моих тестах, но у меня возникли некоторые проблемы.Вот как я инициализирую свой драйвер…

    final FirefoxDriver driver = new FirefoxDriver();
    selenium = new WebDriverBackedSelenium(driver, baseUrl); 

, но вторая строка ниже выдает неопределенную ошибку «inc».

    selenium.getEval("function inc(x) { return x + 1; }); ");
    String incResult = selenium.getEval("inc(5);");

Любые идеи, как я могу успешно внедрить функцию Javascriptдля использования в других тестах?

Спасибо, - Дейв

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Пожалуйста, попробуйте немного изменить следующим образом.

    selenium.getEval("inc = function(x) { return x + 1; }");
    String incResult = selenium.getEval("inc(5);");
0 голосов
/ 26 декабря 2012

В соответствии с документацией по селену ( Драйвер Selenium. NET Docs ):

Создает новый тег «script» в теле текущего тестового окна и добавляет указанный текст в тело команды. Сценарии, запускаемые таким образом, часто могут быть отлажены легче, чем сценарии, выполняемые с помощью команды Selenium «getEval». Имейте в виду, что исключения JS, создаваемые в этих тегах сценария, не управляются Selenium, поэтому вам, вероятно, следует заключить сценарий в блоки try / catch, если есть вероятность, что сценарий вызовет исключение.

Итак, единственное изменение, которое я делаю в ответе, - это изменение getEval в пользу runScript .

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