单击“开始日期图标”和“结束日期图标”时,Webdriver无法正常工作

时间:2014-05-29 08:40:30

标签: python webdriver

我使用Webdriver-Python编写自动化点击“开始日期”'图标,'结束日期'图标将日期填入这些字段。

这是我网站上的日期字段:

|Period:|_____(1)_____[Start Date icon]|_____(2)_____[End Date icon]

(1),(2)是文本字段,我们可以直接输入日期而不是点击日期图标。

单击StartDate / EndDate图标,弹出日历窗口(HTML代码中的标题为日历)将显示,选择日期后,将写入(1)/(2)并弹出消失。 / p>

在我的代码中,我会点击开始日期,然后选择一个日期,然后点击结束日期'图标。但是Webdriver无法找到“结束日期”的位置。图标。尝试点击结束日期'首先是图标,然后是开始日期,它找不到“开始日期”'图标位置

driver = webdriver.Chrome()
driver.get("http://local/time")
assert "ABM - Activity Reference" in driver.title

start_Date= driver.find_element_by_xpath("//*[@id='startDate']/img")
start_Date.click()
driver.window_handles
driver.switch_to_window(driver.window_handles[1])
start_date_Choose = driver.find_element_by_xpath("/html/body/center/table[2]/tbody/tr[5]/td[4]/a")
start_date_Choose.click()

time.sleep(5)

end_Date= driver.find_element_by_xpath("//*[@id='endDate']/img")
end_Date.click()

这是控制台日志:

Traceback (most recent call last):
  File "C:\Python27\Eclipse_workspace\Robot\src\Excel\test.py", line 20, in <module>
    end_Date= driver.find_element_by_xpath("//*[@id='endDateTxt2']/img")
  File "C:\Python27\lib\site-packages\selenium-2.41.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 223, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "C:\Python27\lib\site-packages\selenium-2.41.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 655, in find_element
    {'using': by, 'value': value})['value']
  File "C:\Python27\lib\site-packages\selenium-2.41.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 166, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium-2.41.0-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 164, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchWindowException: Message: u'no such window: target window already closed\nfrom unknown error: web view not found\n  (Session info: chrome=35.0.1916.114)\n  (Driver info: chromedriver=2.10.267521,platform=Windows NT 6.0 SP2 x86)'

1 个答案:

答案 0 :(得分:1)

切换窗口并选择日期后,您需要选择旧窗口。 这可以通过在切换之前保存旧窗口来完成。

current=window.handles[0]

选择日期后:

driver.switch_to_window(current)