2011-01-07 62 views
1

的选择选项我有2个选择用来设定信用卡上的失效日期,我想测试该错误信息传送回来正确时,卡已过期。我唯一的问题是,现在我无法选择一个自2011年1月开始的尚未过期的过期价值。我在想的是在selenium中使用javascript来注入已知的过期值。任何人有任何想法如何做到这一点或建议更好的方式来完成?创建硒IDE

回答

1

可以使用storeEval方法来运行使用Selenium JavaScript代码段。 JavaScript是在Selenium对象的上下文中运行的,因此您需要window.document才能获取文档引用(因此是第一行的原因)。

这个片段是JavaScript用于添加新的选项select元素:

var d = window.document; 
var select = d.getElementsByName("selectName")[0]; 
var option = d.createElement('option'); 
option.value='Value'; 
option.innerHTML='My new option'; 
select.appendChild(option); 

这里是我的硒IDE进入你的复制/粘贴。

<tr> 
<td>storeEval</td> 
<td>var d = window.document;var select = d.getElementsByName(&quot;selectName&quot;)[0];var option = d.createElement('option');option.value='Value';option.innerHTML='My new option';select.appendChild(option);</td> 
<td></td> 
</tr> 

然后,你可以在硒的标准select方法来选择该选项。当然,你总是可以在JavaScript片段中执行option.setAttribute('selected',true),但是使用Selenium可以确保选择新值(因为如果找不到它,它会失败)。

+0

我得到它的工作使用的runScript而不是storeEval像这样ELE =的document.getElementById( 'expYear'); ele.options [ele.options.length] =新的选项( '2005', '2005') ; ele.selectedIndex = ele.options.length -1 – dstarh 2011-01-10 14:51:20

0
 
    storeEval 
    window.document.getElementsByName('descript')[0].value; 
    element