为什么我不能用 robotframework 在 IE 上切换 window?
Why can't I switch window on IE with robotframework?
切换到弹出窗口时出现错误 window。
我的情况:
- Open
Login page
.
- Enter username & password
- Click
Login button
(after clicking, display popup window and main window is closed at the same time).
- Click a button on popup window.
....
这是我的脚本:
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 |
主 window 关闭并显示弹出窗口时脚本失败。我无法获取弹出窗口的名称 window。
日志消息是:
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
上都遇到了这个问题
那么,为什么我无法获取 window 名称?
请告诉我如何解决这个问题?
提前致谢。
使用最新版本的 Selenium2Library (v1.7.0)
,我的脚本可以 运行 成功并且没有任何错误。我的问题解决了
感谢开发团队!
尝试在保护模式设置中为每个区域保持相同的值。
要设置保护模式设置,请从“工具”菜单中选择 "Internet Options",然后单击“安全”选项卡。对于每个区域,在标记为 "Enable Protected Mode" 的选项卡底部都会有一个复选框。应为每个区域选中或取消选中此复选框。
可以启用或禁用此值,只要它对每个区域(Internet、本地 Intranet、受信任的站点、受限站点)都相同即可。
建议将其保持启用状态,因为取消选中它会使您的计算机面临风险。
上述解决方案对我们有用。
原因 - 浏览器似乎将第二个 window 或其 URL 检测为潜在的安全威胁,并且 运行 Internet Explorer 进程的权限受到极大限制。因此 RobotFramework (Selenium2Library) 无法检测到第二个 window.
感谢和问候,
瑞安男
切换到弹出窗口时出现错误 window。 我的情况:
- Open
Login page
.- Enter username & password
- Click
Login button
(after clicking, display popup window and main window is closed at the same time).- Click a button on popup window. ....
这是我的脚本:
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 |
主 window 关闭并显示弹出窗口时脚本失败。我无法获取弹出窗口的名称 window。
日志消息是:
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
上都遇到了这个问题那么,为什么我无法获取 window 名称?
请告诉我如何解决这个问题?
提前致谢。
使用最新版本的 Selenium2Library (v1.7.0)
,我的脚本可以 运行 成功并且没有任何错误。我的问题解决了
感谢开发团队!
尝试在保护模式设置中为每个区域保持相同的值。
要设置保护模式设置,请从“工具”菜单中选择 "Internet Options",然后单击“安全”选项卡。对于每个区域,在标记为 "Enable Protected Mode" 的选项卡底部都会有一个复选框。应为每个区域选中或取消选中此复选框。
可以启用或禁用此值,只要它对每个区域(Internet、本地 Intranet、受信任的站点、受限站点)都相同即可。 建议将其保持启用状态,因为取消选中它会使您的计算机面临风险。
上述解决方案对我们有用。
原因 - 浏览器似乎将第二个 window 或其 URL 检测为潜在的安全威胁,并且 运行 Internet Explorer 进程的权限受到极大限制。因此 RobotFramework (Selenium2Library) 无法检测到第二个 window.
感谢和问候,
瑞安男