📌  相关文章
📜  如何从 selenium 中的 datepicker 中选择日期 (1)

📅  最后修改于: 2023-12-03 15:08:14.643000             🧑  作者: Mango

如何从 selenium 中的 datepicker 中选择日期

有些网页在用户输入日期时会弹出一个日期选择器,这个选择器对自动化测试来说是个挑战。本文将介绍如何在 Selenium 中选择日期。

1. 打开日期选择器并选择日期

我们首先需要通过 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 等待日期选择器的出现,然后找到需要选择的日期并点击它。

2. 使用 JavaScript 选择日期

有时候,日期选择器可能被 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 找到日期输入框,然后设置它的值为我们需要的日期字符串。

3. 总结

本文介绍了两种在 Selenium 中选择日期的方法,分别是打开日期选择器并选择日期、使用 JavaScript 选择日期。根据不同的情况,我们可以选择不同的方法来解决问题。