#url #parameters #selenium #query-string
#url #параметры #selenium #строка запроса
Вопрос:
Я использую Selenium IDE для проверки некоторых элементов на странице во время теста. У меня есть тег script, в котором есть динамический атрибут SRC. Он генерирует параметры для URL на основе того, на каком дизайне страницы я нахожусь. Я пытаюсь сохранить значение параметров для этого атрибута SRC в Selenium IDE и не могу понять, как это сделать. Мысли??
Вот весь тег script. Я просто хочу, чтобы Selenium IDE сохраняла DesignFamily
значение.
<script src="/JS.aspx?DesignFamily=GSMFamilyamp;amp;Design=GSMExtremeamp;amp;Version=2011-4-29-17-2-5" type="text/javascript"></script>
Ответ №1:
Это может быть простым обходным путем. Сначала создайте пользовательское расширение, как указано здесь
Затем в user-extensions.js
добавьте эту функцию.
Selenium.prototype.doStoreQueryStringParameter = function(xpath, varName) {
var currentDocument = selenium.browserbot.getCurrentWindow().document
var result = currentDocument.evaluate(xpath, currentDocument, null, XPathResult.STRING_TYPE, null);
result = result.stringValue
var str = result.split(";")[0].split("=")[1];
storedVars[varName] = str;
};
storeQueryStringParameter
функция должна быть в раскрывающемся списке command после того, как ваш user-extensions.js
был загружен.
При использовании этого ваша цель должна быть чем-то вроде //*parent tags to script*/script[n]/@src //n =1,2,3.. e.g select 2 if 2nd script inside of its of parent tag is to be used
Комментарии:
1. Это сработало! Однако мне нужно было изменить
.split(";")
на.split("amp;")
, поскольку у меня было несколько переменных, а ваш запрос просто вернул первое значение со вторым ключом. Спасибо за вашу помощь!2. да, я специально нацелился на «DesignFamily» 🙂
Ответ №2:
Возможно, это не самое изящное решение, но вы можете изучить использование getHtmlSource()
, доступного в IDE… Хотя, без расширения возможностей с помощью RC, я не уверен в разборе необходимой информации.