python-3.x 如何在日期选择器中选择一天,只有当它可用?

2wnc66cl  于 2023-02-06  发布在  Python
关注(0)|答案(1)|浏览(122)

我正在写一个Python脚本来自动化一个约会预订过程使用 selenium WebDriver。我想能够知道当一个约会是可用的,并点击可用的日期。
我做了一个定制的XPath来去除所有的禁用日期,但是我不知道如何得到关于约会可用的通知并单击它。
这行吗?

all_dates = driver.find_elements(By.XPATH, "//div[@class='datepicker-days']/table/tbody/tr/td")
for date in all_dates:
if date !== driver.find_elements(By.XPATH, "//div[@class='datepicker-days']/table/tbody/tr/td[(contains(@class, 'disabled'))]"):
    date.click()
    break
else:
    driver.refresh()

下面是日期选择器的快照沿着html代码。snapshot

af7jpaap

af7jpaap1#

在没有看到页面或页面的DOM结构的更多信息的情况下,我们将不得不猜测。我会假设,由于您有一个XPath过滤出禁用日期,您只需使用find_element()而不是find_elements()来选择列表中返回的第一个元素。此外,我认为您应该能够使用not()contains()来简化XPath。

first_appointment = driver.find_element(By.XPATH, "//div[@class='datepicker-days']/table/tbody/tr/td[not(contains(@class, 'disabled'))]")

这里不需要XPath。CSS选择器更短,更容易阅读。

first_appointment = driver.find_element(By.CSS_SELECTOR, "div.datepicker-days td:not('.disabled')")

相关问题