在webdriver中使用css Selector匹配元素的更严格方法是什么

时间:2013-07-11 14:42:37

标签: java selenium webdriver css-selectors selenium-webdriver

我的网页上有2个元素

元素1:<div class="DynarchCalendar-day DynarchCalendar-day-othermonth" dyc-type="date" unselectable="on" dyc-date="19960429">

元素2:<div class="DynarchCalendar-day" dyc-type="date" unselectable="on" dyc-date="19960501">

如果我这样做

List<WebElement> DynarchCalendar_day  = driver.findElements(By
                    .cssSelector("div.DynarchCalendar-day"));

我将获得包含元素1和元素2

的WebElements列表

如果我这样做

List<WebElement> DynarchCalendar_day  = driver.findElements(By
                    .cssSelector("div.DynarchCalendar-day.DynarchCalendar-day-othermonth"));

我将获得仅包含元素1的WebElements列表

我该怎么办才能获得Element 2?

2 个答案:

答案 0 :(得分:1)

您可以使用not查找包含DynarchCalendar-day但不包含DynarchCalendar-day-othermonth的div。

css选择器将是:

"div.DynarchCalendar-day:not(.DynarchCalendar-day-othermonth)"

答案 1 :(得分:0)

使用:not(),但它在旧的Internet Explorer(7,8)中不起作用。 您也可以使用div[class='DynarchCalendar-day']。它寻找确切的巧合。