【问题标题】:What is stricter way to match an element using cssSelecter in webdriver在 webdriver 中使用 cssSelecter 匹配元素的更严格方法是什么
【发布时间】:2013-07-09 21:42:55
【问题描述】:

我的网页上有 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 列表

我该怎么做才能只获得元素 2?

【问题讨论】:

  • 它们在 HTML 中是紧挨着的,还是它们在 HTML 中的位置不同? (例如,他们是两个不同 div 的孩子吗?)

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


【解决方案1】:

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

【讨论】:

  • 非常感谢!但就我而言,我不想与“DynarchCalendar-day”完全匹配
【解决方案2】:

您可以使用not 来查找带有DynarchCalendar-day 而不是DynarchCalendar-day-othermonth 的div。

css 选择器是:

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

【讨论】:

猜你喜欢
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 2015-06-07
  • 2021-11-02
  • 2017-10-20
  • 2014-08-07
  • 1970-01-01
相关资源
最近更新 更多