Исключение Selenium: «возврат не в функции»

#c# #javascript #exception #selenium

#c# #javascript #исключение #selenium

Вопрос:

Я пишу тестовые сценарии Selenium в C#.Net и я продолжаю натыкаться на это исключение —

 ERROR: Threw an exception: return not in function
  

Вот моя строка кода, которая выдает ошибку —

 string code = selenium.GetEval(
   "var win = this.browserbot.getUserWindow(); " 
   "return win.editAreaLoader.GetValue(win.loadedCodeEditorID);"
);
  

Кто-нибудь, пожалуйста, может подсказать, почему возникает исключение и какой может быть лучший способ получить возвращаемое значение из функции javascript GetValue?

Спасибо,

Саартхак

Ответ №1:

Из документации selenium для GetEval :

Возвращает результат вычисления указанного фрагмента JavaScript. Фрагмент может содержать несколько строк, но будет возвращен только результат последней строки.

Поэтому вам просто нужно отключить return :

 string code = selenium.GetEval(
   "var win = this.browserbot.getUserWindow(); " 
   "win.editAreaLoader.GetValue(win.loadedCodeEditorID);"
);
  

Комментарии:

1. Получил эту ошибку — ОШИБКА: выдал исключение: win.editAreaLoader. Получаемое значение не является функцией

2. это API с открытым исходным кодом. getEval работает нормально, когда я не возвращаю никакого значения.

3. @saarthak — судя по всему, это GetValue есть undefined . Вы уверены, что это не так getValue ?

4. вместо GetValue было GetValue. Как глупо с моей стороны! Спасибо, что указали.