[英]Robot framework close browser popup window
我单击应用程序中网页上的链接,然后弹出一个新窗口(我使用的是Internet Explorer 11,不允许使用任何其他浏览器)。
该窗口以html页面的形式从以下代码打开: href=fileName.html
。
但是,Robot框架的Selenium2Library关键字都不会关闭弹出窗口,例如“ Close Window
,根据文档说,“关闭当前打开的弹出窗口”。 但是,此命令关闭主浏览器窗口,而不是弹出的窗口。
我还尝试使用“ Get Window
命令的变体,例如“ Get Window Titles
或“ Get Window Identifiers
,但是它返回的不是浏览器主窗口,就是没有窗口。
有没有办法关闭弹出的窗口?
谢谢
编辑:
这是窗口的html链接:
<a title="Birth Proof Code More Information" id="uef-help0" href="birthProofHelp.html" target="_blank" rel="help" data-uefid="uef-li-hlp" data-modal-disable="true">More Info</a>
这是窗口的源代码:
!DOCTYPE HTML>
<html>
<head>
<title>Birth Proof</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
A - ALLEGED<br>
B - BIRTH/BAPTISMAL CERTIFICATE (BEFORE THE AGE OF 5) / PREFERRED BIRTH PROOF<br>
C - DEFINITION OF 'CONVINCING EVIDENCE' MET<br>
F - PREVIOUSLY ESTABLISHED BY THE SSA<br>
Q - ESTABLISHED BASED ON EVIDENCE OTHER THAN THAT COVERED UNDER CODES 'B' AND 'C'<br>
</body>
</html>
我尝试休眠60秒以使窗口出现,但仍然无法正常工作。
窗口真的出现了。 就像我说的,“ Close Window
关闭主浏览器窗口,而不是弹出的窗口。
根据机器人文档,“ Get Window Titles
执行以下操作:
返回当前浏览器实例已知的所有窗口的标题。
如果其他所有方法均失败,则可以使用java.awt.robot。 使用Windows快捷方式关闭窗口:ctrl + w。
编辑:首先添加如何聚焦窗口(我已经使用了一段时间,它对我有用,我想我最初是从这里得到的,@ Avinash Jha的回答):
import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.win32.W32APIOptions;
...
public interface User32 extends W32APIOptions {
User32 instance = (User32) Native.loadLibrary("user32", User32.class, DEFAULT_OPTIONS);
boolean ShowWindow(HWND hWnd, int nCmdShow);
boolean SetForegroundWindow(HWND hWnd);
HWND FindWindow(String title);
int SW_SHOW = 1;
}
...
User32 user32 = User32.instance;
HWND hWnd = user32.FindWindow("window title");
user32.ShowWindow(hWnd, User32.SW_SHOW);
user32.SetForegroundWindow(hWnd);
然后,机器人零件应类似于:
import java.awt.*;
import static java.awt.event.KeyEvent.*;
...
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_CONTROL);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.