我有一個具有4個日曆小工具的窗體。所有小部件的html源代碼都是一樣的。使用nth-child和WebDriver無法找到頁面上的第n個元素
<div class="grid_12">
<td class="wikicell">
<div class="Item">
<div class="Value">
<input type="hidden" id="Submit_Date$_type" value="Date,99/99/9999">
<input id="Submit_Date" size="40" value="" type="text">
<a href="javascript:" class="Calendar">
<img src="transparent.gif" class="Placeholder" tabindex="-1" align="absmiddle">
</a>
</div>
</div>
</td>
我可以使用下面的代碼,找到第一個日曆:
driver.findElement(By.cssSelector("div.grid_12 img.Placeholder"), 15).click();
但是,當我嘗試使用第n個孩子所在的第2,第3和第4日曆(2 )/(3)或(4)我得到一個「無法定位元素:{」方法「:」css選擇器「,」選擇器「:」div.grid_12 img.Placeholder:nth-child(2)「}
我也試過用「a.Calendar」,「div.grid_12 img」也是用f或第一個日曆。這3個選擇器可以在與「n-child(1)」一起使用時成功點擊並打開第一個日曆小部件,但不能用於下一個3.
在第一個日曆關閉後我使用了Thread.sleep(3000)最終得到相同的錯誤。
我使用findElements()方法獲取所有日曆小部件,並使用size()檢查WebDriver是否查找所有日曆元素。結果如預期的那樣是4。
我沒有正確使用'n-child'嗎?
您的'img.Placeholder'元素始終是每個日曆中的第一個孩子。您可能需要在別處移動':nth-child()'。 – BoltClock 2012-01-31 02:55:21