получаем параметр url src из тега script с помощью selenium ide

#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, я не уверен в разборе необходимой информации.