我有2个选项用于设置信用卡上的到期日期,我想测试当卡过期时错误消息正确回传。我唯一的问题是,现在我无法选择一个已过期的值,因为列表从2011年1月开始,但尚未到期。我正在考虑做的是在selenium中使用javascript来注入已知的过期值。任何人都知道如何做到这一点或建议更好的方法来实现?
答案 0 :(得分:1)
您可以使用storeEval
方法使用Selenium运行JavaScript代码段。 JavaScript在Selenium对象的上下文中运行,因此您需要window.document
来获取文档引用(因此第一行的原因)。
此代码段是用于添加select
元素的新选项的JavaScript:
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);
这是我的Selenium IDE条目的复制/粘贴。
<tr>
<td>storeEval</td>
<td>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);</td>
<td></td>
</tr>
然后,您可以在Selenium中使用标准select
方法来选择该选项。当然,您始终可以在JavaScript代码段中执行option.setAttribute('selected',true)
但是让Selenium执行此操作将确保已选择新值(因为如果找不到它,它将失败)。
答案 1 :(得分:0)
storeEval window.document.getElementsByName('descript')[0].value; element