切换到弹出窗口时出现错误。 我的情况:
- 打开
Login page
。- 输入用户名&密码
- 点击
Login button
(点击后,显示弹出窗口,主窗口同时关闭)。- 单击弹出窗口上的按钮。 ....
醇>
这是我的剧本:
Open Browser | ${login page url} | IE
Wait Until Element Is Visible | id=username_tbx |
Input Text | id=username_tbx | username1
Input Text | id=password_tbx | password1
Click Element | id=login_btn | #after clicking, the popup is displayed
@{Window Names} |Wait Until Keyword Succeeds | 20s | 1s | Get Window Names
Select Window | @{Window Names}[1] |
Click Element | id=something_btn |
主窗口关闭并显示弹出窗口时,脚本失败。我无法获得弹出窗口的名称。
日志消息是:
20150518 17:39:33.544 : INFO : Clicking element 'id=login_btn'.
20150518 17:39:36.724 : FAIL :
NoSuchWindowException: Message: Unable to get browser
20150518 17:39:36.725 : WARN :
Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchWindowException: Message: Unable to get browser
20150518 17:39:36.808 : FAIL :
NoSuchWindowException: Message: Window is closed
....
....
20150518 17:39:57.474 : FAIL :
Timeout 20 seconds exceeded. The last error was: NoSuchWindowException: Message: Window is closed
Ending test: Demo.Scenario.1.TC_1
我在 IE10,11
上都遇到了这个问题所以,为什么我无法获得窗口名称?
请告诉我如何解决这个问题?
提前致谢。
答案 0 :(得分:1)
使用最新版本的Selenium2Library (v1.7.0)
,我的脚本可以成功运行并且没有任何错误。我的问题解决了
感谢开发团队!
答案 1 :(得分:0)
尝试在“保护模式”设置中为每个区域保留相同的值。
要设置保护模式设置,请从“工具”菜单中选择“Internet选项”,然后单击“安全”选项卡。对于每个区域,标签底部将显示一个标记为“启用保护模式”的复选框。应为每个区域选中或取消选中此复选框。
只要每个区域(Internet,本地Intranet,受信任的站点,受限制的站点)都相同,就可以启用或禁用此值。 建议将其保持为启用状态,因为取消选中它会使您的计算机面临风险。
以上解决方案对我们有用。
原因 - 似乎浏览器正在检测第二个窗口或其URL作为潜在的安全威胁,并且正在运行具有极大限制权限的Internet Explorer进程。因为RobotFramework(Selenium2Library)无法检测到第二个窗口。
谢谢和问候,
Ryan M