如何在 Python 中使用 Selenium 到 select 比今天提前 3 天的日期?

How do I use Selenium in Python to select a date 3 days ahead of today?

大家好,我正在尝试编写一个脚本,以便在当前日期 3 天后自动预订我的健身房的空位,因为我往往会忘记预订,而且我有点难以抓住日期。我在想我可以抓住当前日期并向右移动 3 个街区以提前 3 天预订。我还尝试使用 datetime 模块并将其输入到日历上方的文本框中,但这不起作用。任何帮助表示赞赏。谢谢!

from selenium import webdriver
import datetime

PATH = "C:/Users/user1/Downloads/Selenium drivers/chromedriver.exe"

driver = webdriver.Chrome(PATH)
driver.get(#Login Website Link)

user = "XXXXXXXXXXXXX"
password = "XXXXXXXXXXXXXXXXXXXXX"
number = "XXXXXXXXXXXXX"
purpose = "XXXXXXXXXX"
dep = "XXXXXXXXXXXX"

today = datetime.date.today()
bkDate = today + datetime.timedelta(days=3)
bkDate_new = bkDate.strftime("%a, %d-%m-%Y")
bkDateNum = bkDate.strftime("%d")

user_textbox = driver.find_element_by_id("j_username")
user_textbox.send_keys(user)

password_textbox = driver.find_element_by_id("j_password")
password_textbox.send_keys(password)

login_button = driver.find_element_by_css_selector("input.form-button")
login_button.click()

driver.get("#Booking Website Link")

number_textbox = driver.find_element_by_id("contact_no")
number_textbox.send_keys(number)

purpose_textbox = driver.find_element_by_id("purpose")
purpose_textbox.send_keys(purpose)

slot1 = driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[2]/main/div[1]/fieldset/form/div[8]/div[2]/div[2]/div[1]/label[7]/i")
slot1.click()

bkDate_input = driver.find_element_by_xpath("/html/body/div[3]/table/tbody/[text() = '8']")
bkDate_input.click()

到目前为止一切顺利,但您需要了解日历项的 html 结构。 在获取当前日期时,尝试从那里创建 2 个变量:月份和您想要 select 的日期。 现在,您只需浏览 html 代码并根据可见文本创建定位器并单击它们。 (对于这个月,您需要先单击下拉菜单才能看到所有选项)。