簡體   English   中英

如何填寫使用下拉日歷的Web表單以使用Python選擇日期?

[英]How can I fill web forms that use a drop down calendar for picking dates with Python?

現在我正在嘗試填寫表單。

我正在使用selenium選擇帶有下拉日歷的輸入框。 當我檢查輸入框時,我得到:

*日期表格框的html *

當我嘗試通過以下方法之一選擇它時:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM