1

我有一个使用Ant Design日历的应用程序。

日期选择器似乎是一个只读属性。我需要在 Python 中与 Selenium 中的这个元素进行交互。

为了解决这个问题,我尝试了以下代码:

self.driver.execute_script("document.querySelector('.ant-calendar-picker-input.ant-input').readOnly = false")
self.driver.execute_script("document.querySelector('.ant-calendar-picker-input.ant-input').value ='12-12-2021'")
self.driver.execute_script("document.querySelector('.ant-calendar-picker-input.ant-input').readOnly = true")

使用此代码,日期不会更新(它在 UI 上确实发生了变化,但 date HTML 属性为空)。我究竟做错了什么?

以下是 HTML 代码的屏幕截图: 在此处输入图像描述 日期更新后(手动): 在此处输入图像描述

谢谢

4

1 回答 1

1

根据HTML您分享的内容,我希望advise您使用下面的代码来更新date picker field,您根本不需要click在日期选择器中,只需运行下面的JS代码。

wait = WebDriverWait(driver, 20)
date_to_fill = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span#codigo_fecha_vencimiento input.ant-calendar-picker-input.ant-input")))
driver.execute_script("arguments[0].setAttribute('value', '15-09-2021')", date_to_fill)

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
于 2021-09-20T07:59:18.257 回答