如何通过CSS选择器为Python硒中的日期字段查找元素?

时间:2019-06-03 22:01:22

标签: python selenium

我无法让Selenium使用Python在网站上找到日期字段。我需要它在此框中单击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:消息:无法使用css选择器==来查找元素。text[id ='f_2815055']

我也尝试了相同的方法,但是使用class ='hasDatePicker'和desc ='Start Date',但是这些方法都出现了与上述相同的错误,无法使用CSS选择器找到元素。

2 个答案:

答案 0 :(得分:1)

诱发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()

OR

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)

答案 1 :(得分:0)

也许使用find_element_by_id,因为该元素具有可用于定位它的ID:

driver.find_element_by_id('f_2815055').click()