使用python2.7和硒访问日期选择器

时间:2018-08-01 08:52:31

标签: python selenium datepicker

我正在尝试从此应用程序中指定日期选择器上的日期:

http://www.wetter-by.de/Internet/AM/inetcntrBY.nsf/cuhome.xsp?src=4JHVFJGNW4&p1=535TN12L42&p3=2CQ7BH7901&p4=4D078O1691

尽管如此,但我无法切换到iframe,因为Firefox仅会给我绝对的xpath。另外,Chropath似乎不适用于此特定的iframe。相反,我切换到直接链接:

http://dlr45.aspdienste.de/cgi-bin/wdaasc/wdaa_client.pl?cid=7

日期选择器也通过键入来获取数字,因此我尝试通过发送键来指定日期。这是我的第一次尝试:

browser = webdriver.Firefox()
browser.get('http://dlr45.aspdienste.de/cgi-bin/wdaasc/wdaa_client.pl?cid=7')
browser.maximize_window()

select = Select(browser.find_element_by_id('sid'))
select.select_by_index(2)

from_date = browser.find_element_by_xpath("//input[@id='from']")
from_date.send_keys("01102016")
from_date.send_keys(Keys.RETURN)

错误指出元素无法通过键盘访问,因此我直接访问了日历,这是我的第二次尝试:

browser = webdriver.Firefox()
browser.get('http://dlr45.aspdienste.de/cgi-bin/wdaasc/wdaa_client.pl?cid=7')
browser.maximize_window()

select = Select(browser.find_element_by_id('sid'))
select.select_by_index(2)

from_date =  browser.find_element_by_xpath("//input[@id='from']")

#Specify year
ActionChains(browser).move_to_element(from_date).click().send_keys("2016").perform()

WebDriverWait(browser,4)

#Jump to Oktober
for i in np.arange(9):
    next_month = browser.find_element_by_class_name('ui-datepicker-next')
    next_month.click()

day = browser.find_element_by_class_name('ui-state-default')
ActionChains(browser).move_to_element(day).send_keys('01').perform()

到目前为止,已正确选择了月份和年份,看起来好像已选择10月1日,但未单击。

是否有一种简单的方法来发送日期(例如第一次尝试)?如果没有,我该如何单击日期,就像第二天一样?我不再需要iframe开关,但是如果有人对如何找到xpath有任何想法,我将不胜感激。

0 个答案:

没有答案