python - 如何通过 css 选择器为 Python selenium 中的日期字段查找元素?
问题描述
我无法让 Python 中的 Selenium 在网站上查找日期字段。我需要在此框中单击 3 次以突出显示该开始日期字段中的现有值,然后发送密钥以输入特定日期。
检查开始日期框给出:
<input type="text" mask="valDate" maxlength="10"
size="12" id="f_2815055" value="4/1/2019"
desc="Start Date" required="true" class="hasDatepicker">
我试过做
driver.find_element_by_css_selector(".text[id='f_2815055']").click()
但我收到错误消息:selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with css selector == .text[id='f_2815055']
我也尝试过相同的方法,但是使用 class = 'hasDatePicker' 和 desc = 'Start Date',但是这些都给出了与上面相同的错误,即无法使用 css 选择器找到元素。
解决方案
诱导WebDriverWait
和跟随Css
选择器。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.hasDatepicker[desc='Start Date']")))
element.click()
已编辑
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
for i in range(0,3):
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.hasDatepicker[desc='Start Date']")))
element.click()
或者
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.hasDatepicker[desc='Start Date']")))
driver.execute_script("arguments[0].click();",element)
driver.execute_script("arguments[0].click();",element)
driver.execute_script("arguments[0].click();",element)
推荐阅读
- powershell - Powershell 启动作业范围
- spring-boot - 在 apache 目录 studio+Spring boot 中创建条目不起作用
- docker - Portainer 是否有可能从正在运行的容器创建 docker-compose yml 文件?
- azure - OpenAPI 类型模式写入 Swagger 类型字段
- javascript - 反应:更新对象数组中的属性后,属性更改为未定义
- python - JSON解析时的KeyError
- java - Java实例变量二维数组没有被方法改变
- windows - 根据 netstat 连接状态更改 cmd 背景颜色
- jestjs - 一个函数使用了一个外部变量,如何用 Jest 测试它?
- python - 如何在 tkinter 中绑定键“<”?