2010-02-15 67 views
0

我希望这里有人能帮助我。我使用硒来测试一个页面,其中有一个图像,当点击显示日历。我可以得到尽可能单击图像使用Selenium RC - 用Selenium IDE找到表格单元格有困难

browser.click("//center/table/tbody/tr/td[1]/a/img") 

我通过使用Selenium IDE得到了上述路径。这个问题有一次,我点击上面的图像,Selenium IDE没有记录日历显示后我点击了什么。

下面是图像按钮

<INPUT size='8' CLASS="field-date" TYPE="text" NAME="endQtrDate" VALUE="01/10/2004" ID="endQtrDate" onBlur="this.value=validateFieldValue(this.value,'date_error','endQtrDate',this.form)" onFocus="this.select()" TITLE="Enter date in format dd/mm/yyyy" /> 
    <IMG ALIGN="absmiddle" ALT="Press to show calendar picker" NAME="calendarButton" SRC="../images/buttons/small/calendar.gif" onClick="return showCalendar('endQtrDate', 'dd/MM/yyyy');" /> 

可惜我看不到日历的代码后,我点击它的代码。我能看到的唯一方法就是使用mozilla插件“Firebug”。我设法得到日历显示的div层。

<div class="calendar" 
    style="position: absolute; display: none; left: 234px; top: 416px;"> 
<table cellspacing="0" cellpadding="0"> 
<thead> 
    <tr> 
    <td colspan="1" class="button">-</td> 
    <td colspan="6" class="title" style="cursor: move;">October, 
    2004</td> 
    <td colspan="1" class="button">×</td> 
    </tr> 
    <tr class="headrow"> 
    <td colspan="1" class="button">«</td> 
    <td colspan="1" class="button">‹</td> 
    <td colspan="4" class="button">Today</td> 
    <td colspan="1" class="button">›</td> 
    <td colspan="1" class="button">»</td> 
    </tr> 
    <tr class="daynames"> 
    <td class="name wn">wk</td> 
    <td class="day name">Mon</td> 
    <td class="day name">Tue</td> 
    <td class="day name">Wed</td> 
    <td class="day name">Thu</td> 
    <td class="day name">Fri</td> 
    <td class="name day weekend">Sat</td> 
    <td class="name day weekend">Sun</td> 
    </tr> 
</thead> 
<tbody> 
    <tr class="daysrow"> 
    <td class="day wn">40</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">1</td> 
    <td class="day weekend">2</td> 
    <td class="day weekend">3</td> 
    </tr> 
    <tr class="daysrow"> 
    <td class="day wn">41</td> 
    <td class="day">4</td> 
    <td class="day">5</td> 
    <td class="day">6</td> 
    <td class="day">7</td> 
    <td class="day">8</td> 
    <td class="day weekend">9</td> 
    <td class="day weekend">10</td> 
    </tr> 
    <tr class="daysrow"> 
    <td class="day wn">42</td> 
    <td class="day">11</td> 
    <td class="day">12</td> 
    <td class="day">13</td> 
    <td class="day">14</td>  
    <td class="selected day">15</td> 
    <td class="day weekend">16</td> 
    <td class="day weekend">17</td> 
    </tr> 
    <tr class="daysrow"> 
    <td class="day wn">43</td> 
    <td class="day">18</td> 
    <td class="day">19</td> 
    <td class="day">20</td> 
    <td class="day">21</td> 
    <td class="day">22</td> 
    <td class="day weekend">23</td> 
    <td class="day weekend">24</td> 
    </tr> 
    <tr class="daysrow"> 
    <td class="day wn">44</td> 
    <td class="day">25</td> 
    <td class="day">26</td> 
    <td class="day">27</td> 
    <td class="day">28</td> 
    <td class="day">29</td> 
    <td class="day weekend">30</td> 
    <td class="day weekend">31</td> 
    </tr> 
    <tr class="emptyrow"> 
    <td class="day wn">36</td> 
    <td class="day">30</td> 
    <td class="day">31</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    <td class="day">&nbsp;</td> 
    </tr> 
</tbody> 
<tfoot> 
    <tr class="footrow"> 
    <td colspan="8" class="ttip" style="cursor: move;">Select date</td> 
    </tr> 
</tfoot> 
</table> 
<div class="combo" style="display: none;"> 
<div class="label">Jan</div> 
<div class="label">Feb</div> 
<div class="label">Mar</div> 
<div class="label">Apr</div> 
<div class="label">May</div> 
<div class="label">Jun</div> 
<div class="label">Jul</div> 
<div class="label">Aug</div> 
<div class="label">Sep</div> 
<div class="label">Oct</div> 
<div class="label">Nov</div> 
<div class="label">Dec</div> 
</div> 
<div class="combo" style="display: none;"> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
<div class="label"></div> 
</div> 
</div> 

如果仔细观察,您会看到表格单元格的日期从1到30。我如何使用Selenium访问这些值?我可以使用IDE,因为它在日历弹出时不会记录任何内容。

萤火虫可以选择显示任何标签的xpath。我尝试了一个td标签,它说这是xpath。

/html/body/div/table/thead/tr[2]/td[3]

我可以用上面的路径,以确定它的值,然后单击它用硒?

感谢

回答

2

要在图像上单击,您可以使用click | calendarButton,并应加载它给你的。

从那里你将需要点击项目,然后我会使用萤火虫看到页面上的其他项目。从额外的信息

编辑:

你需要做的是什么浏览器使用xpath=//td[@class="day" and text()="14"]了用于XPath或CSS使用css=td.day:contains('14')

CSS的路线将是快了很多,如Internet Explorer

+0

我不知道一个cssLocator可以像XPath那样做一个'contains'。感谢您的提醒。 – djangofan

相关问题