我正在尝试从此应用程序中指定日期选择器上的日期:
尽管如此,但我无法切换到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有任何想法,我将不胜感激。