如何在Selenium IDE中自动化DatePicker?

时间:2012-07-19 09:44:56

标签: selenium-ide

<tr>
    <td>type</td>
    <td>id=release_date</td>
    <td>2012-09-30</td>
</tr>

这样可行,但我不想输入日期,而是使用DatePicker选择日期并尝试自动化。

2 个答案:

答案 0 :(得分:6)

根据日期选择器的编码方式,这会有很大差异。例如,我正在使用一个使用Dojo的Web应用程序,我正在使用以下代码在datepicker弹出窗口而不是特定日期中选择特定位置(因为实际日期对我的测试并不重要):

<tr>
    <td>waitForElementPresent</td>
    <td>//*[@id=&quot;startDate&quot;]</td>
    <td></td>
</tr>
<tr>
    <td>clickAt</td>
    <td>xpath=(//input[@value='▼ '])[3]</td>
    <td></td>
</tr>
<tr>
    <td>waitForElementPresent</td>
    <td>//table[@id='startDate_popup']/tbody/tr/td[4]/span</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//table[@id='startDate_popup']/tbody/tr/td[4]/span</td>
    <td></td>
</tr>

我经常使用waitForElementPresent来确保JavaScript在执行测试的下一步之前有时间完成运行。

我还发现,在Dojo小部件中单击时clickAt非常有用,我通常更喜欢将XPath用于特定目标。

我希望这有帮助!

答案 1 :(得分:1)

作为Selenium IDE中的新手,这些天我做了一些包括日期选择器的测试。

我会粘贴我的HTML代码,但如果您有任何问题或任何问题,请随时提出。

<!--Set some random generators for Hour From/To-->
<tr>
    <td>storeEval</td>
    <td>[Math.floor((Math.random() * 31) + 1)]</td>
    <td>random</td>
</tr>
<tr>
    <td>click</td>
    <td>//select[@id='valid']/option[3]</td>
    <td></td>
</tr>
<!--Add values to From date and To date-->
<tr>
    <td>click</td>
    <td>id=p_date_from</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=${random}</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//div[@id='valid_period']/p[2]/span/span/abbr</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>[Math.floor((Math.random() * 10) + 1)]</td>
    <td>random</td>
</tr>
<tr>
    <td>click</td>
    <td>link=${random}</td>
    <td></td>
</tr>