【问题标题】:Selenium select first datepicker is working but not selecting the secondSelenium 选择第一个日期选择器正在工作,但没有选择第二个
【发布时间】:2026-02-15 02:20:03
【问题描述】:

我正在创建测试,但我遇到了 Selenium 的问题。我正在尝试设置两个日期选择器的日期,一个选择开始日期,另一个选择结束日期。两个日期选择器并排在同一页面上。这是我正在使用的java代码:

    driver.findElement(By.id("date_debut")).click();
    driver.findElement(By.linkText(String.valueOf(10))).click();

    // inserted to see if selecting another element would make it work
    driver.findElement(By.name("nom_projet")).click();

    driver.findElement(By.id("date_fin_prevu")).click();
    driver.findElement(By.linkText(String.valueOf(17))).click();

我确信日期选择器的 id 是好的,并且日期选择器是可选择的,因为我要选择的第一个总是可选择的。问题是我无法选择第一个,设置日期,然后选择第二个来设置日期。

简而言之,我的问题是第二个日期选择器从未被选中。

我希望我已经清楚了,如果不是请我解释一下。

【问题讨论】:

  • 我认为这取决于您使用的“日期选择器”。你能补充更多信息吗?
  • 您是否在选择日期选择器之间进行了一些等待?
  • @SirLenz0rlot 我正在使用 jQuery 日期选择器。我认为问题出在 Selenium 上,因为当我仅将代码用于其中一个日期选择器时,它可以完美运行。
  • @KumrunNaharKeya 我尝试使用 Thread.sleep() 但它没有改变任何东西。
  • @SirLenz0rlot 我们正在使用输入元素(请参阅我的小提琴jsfiddle.net/Snyler/9m4296w3/5),但我们不允许用户在其中写入,因此我无法使用 sendkeys 方法。我不明白为什么第一次点击工作完美 - 无论哪个日期选择器是目标,我都可以从结束日期开始它会工作,但我将无法选择开始日期,反之亦然 - 但是第二个永远行不通

标签: java selenium selenium-webdriver datepicker


【解决方案1】:

我的猜测是单击第二个元素会触发第一个日期选择器的关闭,并且没有正确初始化第二个。 尝试中途随机点击body

driver.findElement(By.css("body")).click();

在单击第二个日期选择器之前。

【讨论】:

  • 你是对的,它正在使用这条线。但是我不明白为什么这项工作以及为什么单击我之前完成的页面的随机字段不能完成这项工作,就像在我的示例中一样......不过,非常感谢!
  • 正如 Sebastian 正确解释的那样,单击第二个元素实际上会关闭第一个日期选择器,并且不会触发对下一个元素的单击(这会打开第二个日期选择器)。因此,上面的代码为您做到了;单击触发外部单击的主体元素,然后单击日期选择器并选择日期的进一步代码有效:)
  • 好吧,我没这么理解,对我来说点击其他地方就足够了。感谢您的解释:)
最近更新 更多