2010-01-21 59 views

回答

4

从硒文档

windowFocus()

将焦点聚集到当前选择 窗口

10

你可能会认为Selenium.selectWindow()会是你需要。但是,这只是告诉Selenium你想要所有的Selenium命令去哪个窗口。您可以发送给它的其中一个命令是“给这个(当前选中的)窗口焦点”。

这有点令人困惑,因为Windows(和其他系统)有时会引用“选择的窗口” - 位于其他窗口之上的窗口或“活动”窗口。在这里,我们称之为“有重点”的窗口。这是键盘事件将被引导的窗口。在窗口内部,单个小部件(文本字段,滚动条,按钮)也可以具有焦点。

所以windowFocus()就像点击Selenium当前正在处理的窗口的标题栏。

0

根据我的经验,使用Selenium windowFocus()方法获取窗口焦点有时无效。我发现自己有时使用JavascriptExecutor,然后用硒SWITCHTO()方法切换到需要聚焦的手柄,然后执行:

public static void getWindowFocus(String windowHandle) { 
    driver.switchTo(windowHandle); 
    JavascriptExecutor js = (JavascriptExecutor)driver; 
    js.executeScript("window.focus();"); 
    js = null; 
} 
0

除非或直到您使用windowHandles多个窗口之间切换,乌尔重点将在硒启动的第一个窗口上默认。 widnowFocus做同样的事情