📅  最后修改于: 2023-12-03 15:08:14.643000             🧑  作者: Mango
有些网页在用户输入日期时会弹出一个日期选择器,这个选择器对自动化测试来说是个挑战。本文将介绍如何在 Selenium 中选择日期。
我们首先需要通过 Selenium 打开日期选择器,然后选择我们需要的日期。我们可以使用 send_keys
函数给日期输入框发送日期字符串,然后判断日期选择器是否弹出。下面是一个例子:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 启动浏览器
driver = webdriver.Chrome()
# 打开页面
driver.get("http://example.com")
# 点击日期输入框
driver.find_element_by_id("datepicker").click()
# 输入日期
driver.find_element_by_id("datepicker").send_keys("2021-01-01")
# 等待日期选择器出现
date_picker = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='ui-datepicker']")))
# 选择日期
date_picker.find_element_by_link_text("1").click()
上述代码中,我们首先找到日期输入框并点击它,然后输入了一个日期字符串。接下来,我们使用 WebDriverWait
等待日期选择器的出现,然后找到需要选择的日期并点击它。
有时候,日期选择器可能被 overlay,使其无法通过 Selenium 找到。这时,我们可以使用 JavaScript 选择日期。下面是一个使用 JavaScript 选择日期的例子:
from selenium import webdriver
# 启动浏览器
driver = webdriver.Chrome()
# 打开页面
driver.get("http://example.com")
# 使用 JavaScript 设置日期
driver.execute_script("document.getElementById('datepicker').value='2021-01-01'")
上述代码中,我们使用了 execute_script
函数来调用 JavaScript 代码。我们首先使用 document.getElementById
找到日期输入框,然后设置它的值为我们需要的日期字符串。
本文介绍了两种在 Selenium 中选择日期的方法,分别是打开日期选择器并选择日期、使用 JavaScript 选择日期。根据不同的情况,我们可以选择不同的方法来解决问题。