要使其工作,请在发送密钥之前添加一个单击元素的额外步骤:
datefield = driver.find_element_by_id("ctl00_cphMain_SrchDates1_txtFiledFrom")
datefield.click()
datefield.send_keys("01012011")
更新:
看起来你可能不得不在你的情况下使用ActionChains,这将允许你将一系列动作链接在一起,然后一个接一个地执行它们:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("https://cotthosting.com/NYRocklandExternal/User/Login.aspx")
driver.find_element_by_id("ctl00_cphMain_blkLogin_btnGuestLogin").click()
driver.find_element_by_id("ctl00_cphMain_SrchNames1_txtFirmSurName").send_keys("Adam")
datefield = driver.find_element_by_id("ctl00_cphMain_SrchDates1_txtFiledFrom")
ActionChains(driver).move_to_element(datefield).click().send_keys("01012011").perform()
search_btn = driver.find_element_by_id("ctl00_cphMain_btnSearchAll")
ActionChains(driver).move_to_element(search_btn).click().click().perform()
我不确定为什么在这种情况下需要两次click()调用,但似乎它们是.我尝试了一些其他的东西,包括double_click(),但这是我唯一能让日期字段没有聚焦然后点击搜索按钮的东西.