[英]How can I fill web forms that use a drop down calendar for picking dates with Python?
现在我正在尝试填写此表单。
我正在使用selenium选择带有下拉日历的输入框。 当我检查输入框时,我得到:
当我尝试通过以下方法之一选择它时:
form_element = browser.find_element_by_name('date')
form_element = browser.find_element_by_xpath("//input[@name='date']")
form_element = browser.find_element_by_xpath("//input[@type='date']")
我使用以下“无法找到元素:”消息之一得到此错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element:
Unable to locate element: {"method":"name","selector":"date"}
Unable to locate element: "method":"xpath","selector":"//input[@name='date']"}
{"method":"name","selector":"date"}
我究竟做错了什么? 还有别的东西我应该选择还是有另外一种方法可以做到这一点? 硒甚至可能吗? 如果没有,我怎么能填写这样的表格?
与表单交互的基本思想是选择表单元素(按id,按名称,按类),激活编辑模式(通过模拟单击或返回键),在其中写入并移动到下一个元素。
文档: http : //selenium-python.readthedocs.io/locating-elements.html
特别是为了编辑日期字段,您可以选择它,激活编辑并逐个编译日期组件(日,月,年)。
date= driver.find_element_by_name("date")
date.send_keys(Keys.RETURN)
date.send_keys("10")
date.send_keys("10")
date.send_keys("2016")
对于您的特定网页,这是所有工作代码。
driver = webdriver.Chrome()
driver.get("http://frontop.ca/rtm/eglintongis/dataenterpage.html?pj=MD")
date= driver.find_element_by_name("date")
date.send_keys(Keys.RETURN)
date.send_keys("10")
date.send_keys("10")
date.send_keys("2016")
time= driver.find_element_by_name("time")
time.send_keys(Keys.RETURN)
time.send_keys("15:00")
time.send_keys(Keys.RETURN)
temperature= driver.find_element_by_name("temp")
temperature.send_keys(Keys.RETURN)
temperature.send_keys("5")
operator= driver.find_element_by_name("oper")
operator.send_keys("BlaBLABLA")
select= driver.find_element_by_name("itemslt")
select.click()
date= driver.find_element_by_name("reading")
date.send_keys(Keys.RETURN)
date.send_keys("BlaBLABLA")
submit= driver.find_element_by_name("sltdate")
submit.click()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.