2017-04-15 136 views
3

現在我試圖填寫this表單。如何填寫使用下拉日曆選擇Python日期的網頁表單?

我使用硒來選擇這個輸入框與下拉日曆。 當我檢查輸入框,我得到:

*The html of the date form box*

當我試圖通過這些方法之一將其選中:

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"} 

我在做什麼錯?有什麼我應該選擇還是有另一種方式來做到這一點?硒甚至有可能嗎?如果不是,我還可以填寫這些表格嗎?

+1

您能否指定您引用的網頁的網址。可能有點難以找到與你相同的條件。 – Feishi

+1

我猜你想要的元素是在IFRAME中? – JeffC

+0

我已經更新了具體網址的問題。它是http://frontop.ca/rtm/eglintongis/dataenterpage.html?pj=MD – MagicRobotOctopus

回答

1

與表單交互的基本思想是選擇表單元素(通過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() 
+0

感謝aberna,你非常樂於助人!現在,事實證明,我沒有正確描述我的問題,因爲問題實際上是搞清楚如何訪問iframe。我無法分享我試圖自動化的實際網頁,除非我給你我的用戶名和登錄信息,所以我給出的鏈接是iframe的來源。但你的回答非常豐富和有幫助! – MagicRobotOctopus