4

我想在 selenium web driver (Internet Explorer) 下处理一个 web 对话框。我正在使用 Python

在我的应用程序中,当我单击图标时,会打开一个 Web 对话框,其中包含一些文本框(Webelements),我需要在输入一些文本后单击保存按钮。问题是我不知道焦点是否切换到网络对话框。这是我的代码

driver.find_element_by_xpath("//img[contains(@src,'/images/btn_add.gif')]").click()
driver.switch_to_alert()
driver.find_element_by_name("report_cutoff_date").sendkeys("10/31/2010")

这是我得到的错误

Traceback (most recent call last):
File "C:\Users\vthaduri\workspace\LDC\test.py", line 14, in <module>
driver.find_element_by_name("report_cutoff_date").sendkeys("10/31/2010")
File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 282, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 651, in find_element
{'using': by, 'value': value})['value']
File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 153, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: u'Unable to find element with name == report_cutoff_date' 

供您参考,该网络元素具有相同的名称和截止日期。

有人可以帮我解决这个问题。

4

2 回答 2

9

试试这个:

parent_h = browser.current_window_handle
# click on the link that opens a new window
handles = browser.window_handles # before the pop-up window closes
handles.remove(parent_h)
browser.switch_to_window(handles.pop())
# do stuff in the popup
# popup window closes
browser.switch_to_window(parent_h)
# and you're back
于 2012-07-10T04:47:15.273 回答
1

我认为问题在于以下代码 -

driver.switch_to_alert();

您想切换到执行第一次 click() 操作时出现的另一个对话框。我认为出现的这个框不是警报。您可能必须通过使用切换到另一个对话框

 driver.getWindowHandles();
 driver.switchTo().window(handle);

您可以在此处查看示例。

于 2012-07-03T05:00:09.533 回答