Да, команда "storeAttribute" работает не очень хорошо, из того, что я нашел. Я нашел несколько разных способов сделать это, но я думаю, что использование пользовательских расширений - лучший способ.
HTML:
<html>
<head>
<script src="jquery-1.6.2.js"></script>
<style type="text/css">
body
{
margin:0px 0px 0px 0px;
}
.customDiv
{
border-style:solid;
border-color: green;
margin: 5px 50px 10px 0px; /* top bottom right left */
margin-color: black;
background-color: red;
padding: 50px 50px 50px 50px;
}
</style>
<script>
$(document).ready(function() {
jQuery("#BottomMarginSelect").change(function() {
jQuery("#CustomDiv").css("margin-bottom",jQuery("#BottomMarginSelect").val());
//alert(jQuery("#CustomDiv").css("margin-bottom"));
});
});
</script>
</head>
<body>
<div id="CustomDiv" class="customDiv">
text in div
</div>--- bottom margin of div ends here (100px below green div border); margin is always transparent ----
<br />
<br />
<b>Select the bottom margin of the div:<b><br />
<select id="BottomMarginSelect">
<option value="10px">10px</option>
<option value="20px">20px</option>
<option value="30px">30px</option>
</select>
</body>
</html>
Создайте файл с именем "user-extensions.js" и поместите в него этот код:
Selenium.prototype.doStoreStyleAttribute = function(locator) {
var val = selenium.browserbot.getCurrentWindow().document.getElementById(locator).style.marginBottom;
this.doStore(val,"var_style_attribute_from_custom_command");
};
Установить файл пользовательских расширений в Selenium-IDE:
Параметры> Параметры>
Команды Selenium:
<tr>
<td>select</td>
<td>id=BottomMarginSelect</td>
<td>label=10px</td>
</tr>
<tr>
<td>storeSelectedLabel</td>
<td>id=BottomMarginSelect</td>
<td>var_BottomMarginSelect_select_option_selected_text</td>
</tr>
<tr>
<td>echo</td>
<td>${var_BottomMarginSelect_select_option_selected_text}</td>
<td></td>
</tr>
<tr>
<td>storeStyleAttribute</td>
<td>CustomDiv</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>${var_style_attribute_from_custom_command}</td>
<td></td>
</tr>
<tr>
<td>assertExpression</td>
<td>${var_style_attribute_from_custom_command}</td>
<td>${var_BottomMarginSelect_select_option_selected_text}</td>
</tr>
<tr>
<td>storeText</td>
<td>//div[@id='CustomDiv']/@style</td>
<td>var_style_attribute_from_id</td>
</tr>
<tr>
<td>echo</td>
<td>${var_style_attribute_from_id}</td>
<td></td>
</tr>
<tr>
<td>storeText</td>
<td>//div[@class='customDiv']/@style</td>
<td>var_style_attribute_from_class</td>
</tr>
<tr>
<td>echo</td>
<td>${var_style_attribute_from_class}</td>
<td></td>
</tr>
<tr>
<td>storeAttribute</td>
<td>CustomDiv@style</td>
<td>var_style_attribute_from_storeAttribute</td>
</tr>
<tr>
<td>echo</td>
<td>${var_style_attribute_from_storeAttribute}</td>
<td></td>
</tr>
Выход:
- [info] Выполнение: | выбрать | id = BottomMarginSelect | label = 10px |
- [info] Выполнение: | storeSelectedLabel | id = BottomMarginSelect | var_BottomMarginSelect_select_option_selected_text |
- [info] Выполнение: | echo | $ {var_BottomMarginSelect_select_option_selected_text} | |
- [info] echo: 10px
- [info] Выполнение: | storeStyleAttribute | CustomDiv | |
- [info] Выполнение: | echo | $ {var_style_attribute_from_custom_command} | |
- [info] echo: 10px
- [info] Выполнение: | assertExpression | $ {var_style_attribute_from_custom_command} | $ {var_BottomMarginSelect_select_option_selected_text} |
- [info] Выполнение: | storeText | // div [@ id = 'CustomDiv'] / @ style | var_style_attribute_from_id |
- [info] Выполнение: | echo | $ {var_style_attribute_from_id} | |
- [info] echo: margin-bottom: 10px;
- [info] Выполнение: | storeText | // div [@ class = 'customDiv'] / @ style | var_style_attribute_from_class |
- [info] Выполнение: | echo | $ {var_style_attribute_from_class} | |
- [info] echo: margin-bottom: 10px;
- [info] Выполнение: | storeAttribute | CustomDiv @ стиль | var_style_attribute_from_storeAttribute |
- [info] Выполнение: | echo | $ {var_style_attribute_from_storeAttribute} | |
- [info] echo: margin-bottom: 10px;