2010-01-21 62 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做同樣的事情