如何遍历<div>标签中的Dojo Web Table

时间:2016-05-19 07:23:34

标签: html selenium webdriver

enter image description here我有网页,我需要在web表中选择特定元素。在普通表中,我们可以通过计算行数和列数来实现,但在Dojo页面中,这些元素存在于Tag.Not确定如何遍历它以点击特定元素。请在下面找到Dojo HTML代码。

<div class="appointment-calendar-item special-calendar-5-items" data-dojo-attach-point="containerNode" id="uniqName_8_3" widgetid="uniqName_8_3">
    <div class="calendar-item-title">
        <div data-dojo-attach-point="itemWeek" class="calendar-month-week bold">Thursday</div>
        <div data-dojo-attach-point="itemMonthDay" class="calendar-month-day medium">May 19</div>
    </div>
    <div data-dojo-attach-point="itemsList" class="items-container">
        <a class="calendar-item-time" href="" tabindex="0" aria-label="Monday, May 23, 9:00 am" aria-selected="false" role="tab" data-time="9:00 am">9:00 am</a> 
        <a class="calendar-item-time" href="" tabindex="0" aria-label="Monday, May 23, 9:15 am" aria-selected="false" role="tab" data-time="9:15 am">9:15 am</a>
        <a class="calendar-item-time" href="" tabindex="0" aria-label="Monday, May 23, 9:30 am" aria-selected="false" role="tab" data-time="9:30 am">9:30 am</a>
        <a class="calendar-item-time" href="" tabindex="0" aria-label="Monday, May 23, 9:45 am" aria-selected="false" role="tab" data-time="9:45 am">9:45 am</a> 
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 10:00 am" aria-selected="false" role="tab" data-time="10:00 am">10:00 am</a> 
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 10:15 am" aria-selected="false" role="tab" data-time="10:15 am">10:15 am</a>
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 10:30 am" aria-selected="false" role="tab" data-time="10:30 am">10:30 am</a>
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 10:45 am" aria-selected="false" role="tab" data-time="10:45 am">10:45 am</a>
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 11:00 am" aria-selected="false" role="tab" data-time="11:00 am">11:00 am</a>
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 5:15 pm" aria-selected="false" role="tab" data-time="5:15 pm">5:15 pm</a>
        <a class="calendar-item-time" href="" tabindex="-1" aria-label="Monday, May 23, 5:30 pm" aria-selected="false" role="tab" data-time="5:30 pm">5:30 pm</a>
    </div>      

1 个答案:

答案 0 :(得分:0)

如果您想在上午9:00点击,可以使用XPath。

driver.FindElement(By.XPath("//a[contains(.,'9:00 am')]")).Click();

如果您想浏览所有项目。你需要使用class&#34; items-container&#34;来获取div元素,然后循环遍历它们

ReadOnlyCollection<IWebElement> itemContainersCollection = driver.FindElements(By.CssSelector(".items-container")); 
foreach(IWebElement div in itemContainersCollection)
{
    ReadOnlyCollection<IWebElement> aCollection = driver.FindElements(By.CssSelector("a"));
    foreach(IWebElement a in aCollection)
    {
        System.Diagnostics.Debug.WriteLine(a.GetAttribute("aria-label") + " - "+ a.Text);
    }
}